strtol函数
今天做啦一个进制转换的题,改来改去最终倒是过啦,本来挺开心的,然后去翻啦一下题解,瞬间就有小情绪啦,哎,人家的代码辣么辣么短,实在是不开心,不过谁让咱是小渣渣呢,在此总结一下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函数的更多相关文章
- strtol函数 将字符串转换为相应进制的整数
转自http://hi.baidu.com/qwpsmile/blog/item/9bc44efa4f41018a9f514637.html +----------------+| strt ...
- POJ1331 Multiply(strtol函数练习)
题目链接:http://poj.org/problem?id=1331 主要介绍strtol函数: long int strtol(const char *nptr,char **endptr,int ...
- 浅析C语言中strtol()函数与strtoul()函数的用法
转自:http://www.jb51.net/article/71463.htm C语言strtol()函数:将字符串转换成long(长整型数) 头文件: ? 1 #include <stdli ...
- strtol 函数用法
strtol是一个C语言函数,作用就是将一个字符串转换为长整型long,其函数原型为: long int strtol (const char* str, char** endptr, int bas ...
- strtol()函数
#include <stdlib.h>#include <stdio.h> int main(){ char a[] = "100"; char b[] = ...
- strtol函数的用法——字符串转长整形
/* strtol example */ #include <stdio.h> /* printf */ #include <stdlib.h> /* strtol */ in ...
- string.h文件中函数用法
下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) ...
- C字符串处理函数
部分参考百科. C常用字符串函数:字符串输入函数,字符串输出函数,字符串处理函数,标准输入输出流 字符串处理函数: 1.字符串长度:strlen(str),返回字符串实际长度,不包括'\0',返回值类 ...
- strtol详解
文章装载自:http://blog.csdn.net/happylife1527/article/details/8441799,大家看到这篇文章想转载的请注明出处,尊重原作者劳动成果. 今天,在re ...
随机推荐
- Servlet Filter 1
1.Filter简介 )Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图 ...
- oc-类目、延展、协议
-----------------------------------------------Category-------------------------------------- 类目 是在原 ...
- 【linux】ps 命令详解
[root@andon lib]# ps aux ###常用格式 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0 ...
- 【linux】umask
1.默认情况下的umask值是022 [root@andon ~]# umask 0022 2.umask作用 默认文件权限:666(linux创建文件默认无执行权限)-umask =644(6-0 ...
- 未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"解决方案
可以到http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede1 ...
- php 查询出来的字段名全是小写或者大写
PHP PDO预定义常量 PDO::CASE_LOWER -- 强制列名是小写PDO::CASE_NATURAL -- 列名按照原始的方式PDO::CASE_UPPER -- 强制列名为大写 修改此参 ...
- HDU2829
题目大意:给定一个长度为n的序列,至多将序列分成m+1段,每段序列都有权值,权值为序列内两个数两两相乘之和.m<=n<=1000. 分析:令w[i,j]表示区间[i,j]中两两乘积之和,f ...
- memcache 永久数据被踢
1.memcache的slab chunk 就像公交车的坐位一样,有大小之分,还有活跃的状态. 2.代码 index.php -->插入数据,注意$value的大小和重复次数,跟chunk和其数 ...
- requestscope.contextpath和<%=request.getContextPath()%>有何区别?(待解答)
问题1:requestscope.contextpath和<%=request.getContextPath()%>有何区别? 问题2:${requestscope.contextpath ...
- 黄聪:VS2010开发如何在c#中使用Ctrl、Alt、Tab等全局组合快捷键
1.新建一个类 HotkeyHelper using System; using System.Runtime.InteropServices; using System.Windows.Forms ...