acm比赛中字符串和数字之间的转化的办法总结
2014-02-25 17:19
316 查看
今天做acm的省赛题目的时候突然遇到了一个问题,就是将一个字符串的的一串字符
转化为数字,以char p=“1234”为例,那么有几种办法呢,我总结了两张办法可以使
其成功转化。
1:直接计算的办法,就是1234,1*1000+2*100+3*10+4;
2.是可以运用c语言提供的函数来解决。
其中的strtod是将一个char换成double的,然后再强制转化为int即可了。
假如int 不够大,还可以使用strtol ,这是换long 型的呀
那么给一个数字这个就是很简单了,用sscanf
讲数字化成字符串,也可以采用sprintf
今天先介绍这么多,以后有了更好地办法再接着更新
转化为数字,以char p=“1234”为例,那么有几种办法呢,我总结了两张办法可以使
其成功转化。
1:直接计算的办法,就是1234,1*1000+2*100+3*10+4;
#include<math.h> #include<cstdio> #include<string.h> int main() { char a[100]; scanf("%s",a); int l=strlen(a); int sum=0; for(int i=0;i<l;i++) { sum=sum+pow(10,l-i-1)*(a[i]-'0'); //printf("%d %d\n",sum,pow(10,l-i-1)); } printf("%d\n",sum); }
2.是可以运用c语言提供的函数来解决。
#include<iostream> #include<string.h> #include<stdio.h> #include <stdlib.h> using namespace std; char p[1000000]; int next[1000000]; int t,n; int main() { while(1) { char *end; scanf("%s",p); double value; value=strtod(p,&end); int k=(int)value; printf("%s %d\n",p,k); } return 0; }
其中的strtod是将一个char换成double的,然后再强制转化为int即可了。
假如int 不够大,还可以使用strtol ,这是换long 型的呀
#include <stdlib.h> #include <stdio.h> int main() { char *string = "87654321", *endptr; long lnumber; lnumber =strtol(string, &endptr, 10); printf("string = %s long = %ld\n", string, lnumber); return 0; }
那么给一个数字这个就是很简单了,用sscanf
#include <stdlib.h> #include <stdio.h> int main() { char buf[512] ; sscanf("123456", "%s", buf); printf("%s",buf); }
讲数字化成字符串,也可以采用sprintf
#include <stdlib.h> #include <stdio.h> int main() { char buf[512] ; int k=123; sprintf(buf,"%d",k); printf("%s",buf);//123 //sprintf(a,"%d",&buf); //printf("%d",a); }
今天先介绍这么多,以后有了更好地办法再接着更新
相关文章推荐
- 软件国际化总结之一:数字与字符串之间的格式化和转化处理
- C++ 字符串转化为数组 有负数 数字之间为空格间隔
- c++中字符串与数字之间的相互转化
- 字符串和数字之间的相互转换总结
- c++中字符串数字之间的转化
- Groovy Tip 37 字符串和数字之间的转化
- js数字、字符串、数组之间的转化
- C语言中将字符串转化为数字的函数总结
- 字符串和数字之间的转化
- 浅谈JS 数字和字符串之间相互转化的纠纷
- c/c++ 数字和字符串之间的转化
- java,数字,字符,字符串之间的转化
- c++中stringstream 类的用法及字符串与数字之间转化
- C语言实现atoi和itoa(字符串与数字之间的转化)
- Byte类型与各种基础类型之间的相互转化函数总结
- 字符串和数字的转化
- NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))
- java 判断字符串能否转化为数字的三种方法
- 字符串的相关,新手终结,截取,匹配,分隔,数字转化等
- 时间格式与字符串之间的转化