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!='