c语言字符串转数字
⑴ c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做
字符串转整数可以有两种方法:
1.使用c语言自带的库函数:atoi。
函数原型:int atoi(const char *nptr);
功能:把字符串转成整型数。
例如:
#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intn;
char*str="12345";
n=atoi(str);
printf("int=%d ",n);
return0;
}
/*
输出:
int=12345
*/
2.可以自己编写一个转换函数:
#include<stdio.h>
#include<stdlib.h>
intatoi(char*s)
{
intt=0;
while(*s){
t=t*10+*s-'0';
s++;
}
return(t);
}
intmain()
{
chara[]="12345";
intn=atoi(a);
printf("n=%d",n);
return0;
}
/*
输出:
n=12345
*/
⑵ 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;
}
⑶ 在C语言里怎么把字符转化为数字呢
可以用atoi函数,是将字符串转换成函数,在<stdlib.h>里面,原型是int atoi(const char *nptr);
你可以在madn里面查到,我给你把结果弄下来吧,还有atol是转换为长整数,atof是转换为浮点数,这个是上面的例子
Example
/* ATOF.C: This program shows how numbers stored
* as strings can be converted to numeric values
* using the atof, atoi, and atol functions.
*/
#include <stdlib.h>
#include <stdio.h>
void main( void )
{
char *s; double x; int i; long l;
s = " -2309.12E-15"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = "7.8912654773d210"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = " -9885 pigs"; /* Test of atoi */
i = atoi( s );
printf( "atoi test: ASCII string: %s\t\tinteger: %d\n", s, i );
s = "98854 dollars"; /* Test of atol */
l = atol( s );
printf( "atol test: ASCII string: %s\t\tlong: %ld\n", s, l );
}
Output
atof test: ASCII string: -2309.12E-15 float: -2.309120e-012
atof test: ASCII string: 7.8912654773d210 float: 7.891265e+210
atoi test: ASCII string: -9885 pigs integer: -9885
atol test: ASCII string: 98854 dollars long: 98854
⑷ 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!='