c语言字符转为数字
A. c语言字符转数字
功能:数字字符串转整型int,去除高位0。
注意:不要输入超出int范围。
#include<stdio.h>
#include<string.h>
intpw10(intm);//计算10次方
intstr2int(char*nums);
intmain()
{
charnums[]="0103456";
intnum;
printf("原字符串:%s
",nums);
num=str2int(nums);
printf("转成整型后的数字为:%d
",num);
return0;
}
intpw10(intm)//计算10次方
{
inti,mu=1;
if(m==0)
return1;
for(i=0;i<m;i++)
mu=mu*10;
returnmu;
}
intstr2int(char*nums)
{
char*p=nums;
intlen=strlen(nums),i,m=0,sum=0;
while(1)//去高位0
{
if(*p=='0')
p++;
else
break;
}
for(i=len-1;&nums[i]>=p;i--)
sum=sum+(nums[i]-'0')*pw10(m++);
returnsum;
}
B. C语言如何把一个字符串转换成数字
C语言中,可以使用atoi函数将字符串转换为数字,如atoi("123")可以得到数字123。
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。
如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回0。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过蚂返缓大可能报错-1。
扩展资闷模料:
C语言中数字转化为字符串的方案:
使用sprintf函数来实现,如sprintf("%d", 123)可以得到字符串"123"。
sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可世御能性。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。
C. C语言中怎么将一个整数字符串转换为一个数
#include<stdio.h>
//把一个整数字符串转换为一个数。
intascii_to_integer(char*string)
{
intvalue;value=0;
//逐个把一个整数字符串转换为一个数。
while(*string>='0'&&*string<='9'){
value*=10;
value+=*string-'0';
string++;
}
//错误检查:如果由于遇到一个非数字字符而终止,把结果设置为0
if(*string!='