扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
字符串转整数可以有两种方法:
创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为方山企业提供专业的成都做网站、成都网站建设,方山网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
1.使用c语言自带的库函数:atoi。
函数原型:int atoi(const char *nptr);
功能:把字符串转成整型数。
例如:
#include stdlib.h
#include stdio.h
int main(void)
{
int n;
char *str = "12345";
n = atoi(str);
printf("int=%d\n",n);
return 0;
}
/*
输出:
int = 12345
*/
2.可以自己编写一个转换函数:
#include stdio.h
#include stdlib.h
int atoi(char *s)
{
int t=0;
while(*s){
t=t*10+*s-'0';
s++;
}
return(t);
}
int main ()
{
char a[]="12345";
int n = atoi(a);
printf("n=%d ",n);
return 0;
}
/*
输出:
n = 12345
*/
(1)使用常用标准函数库stdlib当中的字符串转换函数,可以把各种类型的字符串转换为相应类型的数字。
(2)使用输入输出标准函数库stdio当中的sscanf函数。
用标准库中的sscanf函数(其中格式控制字符的使用方法和scanf一致,%d读十进制整数,%x读16进制整数)。例如:char s[] = {"92283976 73b1c080 1e448b0 bd44dae6e"};int a, b, c, d;sscanf(s, "%d%x%x%x", a, b, c, d);前提是要保证字符串格式和格式控制符一致,否则后果不确定。另外,这里bd44dae6e在32位平台上超过int范围,如果要正确读入的话,需要使用long long,对应格式控制字符改用Lx或llx。
atof() 将字符串转换为双精度浮点型值;atoi() 将字符串转换为整型值;atol() 将字符串转换为长整型值;strtod() 将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字 ;strtol() 将字符串转换为长整值,并报告不能被转换的所有剩余数字 ;strtoul() 将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。
C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。\x0d\x0a头文件:stdlib.h\x0d\x0a函数原型:int atoi(const char* nptr);\x0d\x0a(另外两个类似)\x0d\x0a\x0d\x0a举个例子:\x0d\x0achar *str="123";\x0d\x0aint num=atoi(str);\x0d\x0a执行后,num的值被初始化为123
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流