今天做啦一个进制转换的题,改来改去最终倒是过啦,本来挺开心的,然后去翻啦一下题解,瞬间就有小情绪啦,哎,人家的代码辣么辣么短,实在是不开心,不过谁让咱是小渣渣呢,在此总结一下strtol 函数。

先来看看把我整不开心的这道题

Hrbust1896 http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1896

题目简单,只要足够细心就能AC的

看我自己的代码

 #include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<stack>
#include<math.h>
using namespace std;
int main()
{ int n,m;
char s[];
while(~scanf("%d%s",&n,&s)){
int t=;int ss[];
int len=strlen(s);
for(int i=;i<len;i++){
if(s[i]=='a'||s[i]=='A')ss[t++]=;
else if(s[i]=='b'||s[i]=='B')ss[t++]=;
else if(s[i]=='c'||s[i]=='C')ss[t++]=;
else if(s[i]=='d'||s[i]=='D')ss[t++]=;
else if(s[i]=='e'||s[i]=='E')ss[t++]=;
else if(s[i]=='f'||s[i]=='F')ss[t++]=;
else {ss[t++]=s[i]-''; } } int sum=;int j=;
for(int i=t-;i>=;i--){
sum+=ss[i]*pow(n,j++);
} cout<<sum<<endl; }
}

至于我发现的很牛很短的代码是这个样子的

 #include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main()
{
int m;//base(代表进制)
char n[];//char*nptr
while(~scanf("%d %s",&m,&n))
{
printf("%d\n",strtol(n,NULL,m));
//必须设定endptr为NULL 否则返回非法字符串
}
}

里面的注释是大神打上去的。。。

嘎嘎嘎,罪魁祸首就是strtol这个函数,不过他真的太方便啦嘿嘿

long int strtol(const char *nptr, char **endptr, int base)

*nptr指向的是在不同的进制下数的表示的字符串,base则为进制,char **endptr一般为空。

strtol函数的更多相关文章

  1. strtol函数 将字符串转换为相应进制的整数

    转自http://hi.baidu.com/qwpsmile/blog/item/9bc44efa4f41018a9f514637.html +----------------+|      strt ...

  2. POJ1331 Multiply(strtol函数练习)

    题目链接:http://poj.org/problem?id=1331 主要介绍strtol函数: long int strtol(const char *nptr,char **endptr,int ...

  3. 浅析C语言中strtol()函数与strtoul()函数的用法

    转自:http://www.jb51.net/article/71463.htm C语言strtol()函数:将字符串转换成long(长整型数) 头文件: ? 1 #include <stdli ...

  4. strtol 函数用法

    strtol是一个C语言函数,作用就是将一个字符串转换为长整型long,其函数原型为: long int strtol (const char* str, char** endptr, int bas ...

  5. strtol()函数

    #include <stdlib.h>#include <stdio.h> int main(){ char a[] = "100"; char b[] = ...

  6. strtol函数的用法——字符串转长整形

    /* strtol example */ #include <stdio.h> /* printf */ #include <stdlib.h> /* strtol */ in ...

  7. string.h文件中函数用法

    下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...

  8. C字符串处理函数

    部分参考百科. C常用字符串函数:字符串输入函数,字符串输出函数,字符串处理函数,标准输入输出流 字符串处理函数: 1.字符串长度:strlen(str),返回字符串实际长度,不包括'\0',返回值类 ...

  9. strtol详解

    文章装载自:http://blog.csdn.net/happylife1527/article/details/8441799,大家看到这篇文章想转载的请注明出处,尊重原作者劳动成果. 今天,在re ...

随机推荐

  1. EditText使用详解-包含很多教程上看不到的功能演示

    写道 标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了..呵呵 广告一下我的应用“我团”,最新1 ...

  2. JSP的Servlet监听器

    JSP的Servlet监听器 来源: http://blog.csdn.net/phoenix_17th/article/details/3868670 Servlet 监听器用于监听一些重要事件的发 ...

  3. 设置JSP不做浏览器缓存

    CacheFilter代码: package com.my.filter; import java.io.*; import javax.servlet.*; import javax.servlet ...

  4. 战胜忧虑<4>——让平均概率来替你分忧

    让平均概率来替你分忧. 我们可以根据事情发生的平均率来评估我们的忧虑究竟值不值,如此一来,我想你和我应该可以去除99%的忧虑. 故事 我从小生长在密苏里州的一个农场,有一天,正帮妈妈采摘樱桃的时候,我 ...

  5. boa配置文件详解

    Web服务器boa配置文件参数说明 boa的配置文件是/etc/boa/boa.conf.Port:boa服务器监听的端口,默认的端口是80.如果端口小于1024,则必须是  root用户启动服务器. ...

  6. GCC 编译使用动态链接库和静态链接库

    1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有 ...

  7. \r\n的坑

    \r回车符 \n换行符 由于历史原因,windows下的换行符为\r\n linux或者html等开源或公开标准的换行符是\n ---- 为什么windows下的回车换行是\r\n? 第一台打印机,每 ...

  8. 关于c语言中qsort函数的一点心得

    今天写c时无意间用到了排序,便想着使用c语言标准库中提供的排序函数,即qsort函数(c++stl中提供了sort函数用于排序),首先是介绍qsort函数的一些基本用法(以下内容转自: http:// ...

  9. 调试压缩后的Javascript文件:在 Chrome 和 Safari ,选择“脚本”标签,找到相应的文件,然后点击“{}”图标(pretty print,在面板底部)

  10. MongoDB的基本使用

    use library 使用use函数切换已有的数据库或创建新的数据库 show dbs 查看MongoDB中目前所有可用的数据库 show collections 查看当前数据库中的所有集合 在集合 ...