(1)使用常用标准函数库stdlib当中的字符串转换函数,可以把各种类型的字符串转换为相应类型的数字。
成都创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为玉州企业提供专业的做网站、成都网站设计,玉州网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
(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() 将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。
#includestdio.h
//把一个整数字符串转换为一个数。
intascii_to_integer(char*string)
{
intvalue;value=0;
//逐个把一个整数字符串转换为一个数。
while(*string='0'*string='9'){
value*=10;
value+=*string-'0';
string++;
}
//错误检查:如果由于遇到一个非数字字符而终止,把结果设置为0
if(*string!='\0')
value=0;
returnvalue;
}
intmain()
{
char*numChar="102";
printf("%d\n",ascii_to_integer(numChar)+3);
return0;
}
扩展资料
C语言转义字符
1、使用制表符格式化输出
横向制表符\t可以用于格式化文本输出,假如我们要输出一组表格样式的数据,一种方法是使用输出多个空格对齐,另一种方法就是使用\t。在下面的程序中,我们为表格的第1列与第2列应用两次\t以使列之间有更多的间距。
2、使用反斜框输出文件路径
当我们需要在程序的运行日志或调试时输出文件路径信息,又或者像下面这样,简单的将一个路径输出到控制台,这时我们需要使用反斜框转义符来进行路径转义输出。
#includestdio.h
#includestring.h
int str2int(char *ch);//字符型数字转整型数字
int p10(int m);//计算10的次方,pow函数计算10次方有误差,重写函数
int main()
{
char ch[]="234";
int n;
n=str2int(ch);
printf("n=%d\n",n);
return 0;
}
int str2int(char *ch)
{
int len=strlen(ch),i,n=0,m=0;
for(i=len-1;i=0;i--)
{
n=n+(ch[i]-'0')*p10(m++);
}
return n;
}
int p10(int m)
{
int i,sum=1;
if(m==0)
return 1;
for(i=0;im;i++)
sum=sum*10;
return sum;
}
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