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