C語言atoi()函數:將字符串轉換成int(整數)
頭文件:
#include <stdlib.h>
atoi() 函數用來將字符串轉換成整數(int),其原型為:
int atoi (const char * str);
【函數說明】atoi() 函數會掃描參數 str 字符串,跳過前面的空白字符(例如空格,tab縮進等,可以通過 isspace() 函數來檢測),直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字符串結束時('/0')才結束轉換,并將結果返回。
【返回值】返回轉換后的整型數;如果 str 不能轉換成 int 或者 str 為空字符串,那么將返回 0。
范例:將字符串a 與字符串b 轉換成數字后相加。
#include <stdio.h>#include <stdlib.h>int main (){ int i; char buffer[256]; printf ("Enter a number: "); fgets (buffer, 256, stdin); i = atoi (buffer); printf ("The value entered is %d.", i); system("pause"); return 0;}
執行結果:
Enter a number: 233cyuyanThe value entered is 233.
C語言atof()函數:將字符串轉換為double(雙精度浮點數)
頭文件:
#include <stdlib.h>
atol() 函數的名字源于“ascii to long”,用來將字符串轉換成長整型數(long),其原型為:
long atol(const char * str);
【函數說明】atol() 會掃描參數 str 字符串,跳過前面的空白字符(例如空格,tab縮進等,可以通過 isspace() 函數來檢測),直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字符串結束時('/0')才結束轉換,并將結果返回。
【返回值】返回轉換后的長整型數(long);如果 str 不能轉換成 long 或者 str 為空字符串,那么將返回 0。
示例:將輸入的字符串轉換成long。
#include <stdio.h>#include <stdlib.h>int main (){ long int li; char buffer[256]; printf ("Enter a long number: "); fgets(buffer, 256, stdin); li = atol(buffer); printf ("The value entered is %ld./n", li); system("pause"); return 0;}
執行結果:
Enter a long number: 1200cyuyanThe value entered is 1200.
C語言atof()函數:將字符串轉換為double(雙精度浮點數)
頭文件:
#include <stdlib.h>
函數 atof() 用于將字符串轉換為雙精度浮點數(double),其原型為:
double atof (const char* str);
atof() 的名字來源于 ascii to floating point numbers 的縮寫,它會掃描參數str字符串,跳過前面的空白字符(例如空格,tab縮進等,可以通過 isspace() 函數來檢測),直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字符串結束時('/0')才結束轉換,并將結果返回。參數str 字符串可包含正負號、小數點或E(e)來表示指數部分,如123. 456 或123e-2。
【返回值】返回轉換后的浮點數;如果字符串 str 不能被轉換為 double,那么返回 0.0。
溫馨提示:ANSI C 規范定義了 stof()、atoi()、atol()、strtod()、strtol()、strtoul() 共6個可以將字符串轉換為數字的函數,大家可以對比學習;使用 atof() 與使用 strtod(str, NULL) 結果相同。另外在 C99 / C++11 規范中又新增了5個函數,分別是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介紹,請大家自行學習。
范例:
#include <stdio.h>#include <stdlib.h>int main(){ char *a = "-100.23", *b = "200e-2", *c = "341", *d = "100.34cyuyan", *e = "cyuyan"; printf("a = %.2f/n", atof(a)); printf("b = %.2f/n", atof(b)); printf("c = %.2f/n", atof(c)); printf("d = %.2f/n", atof(d)); printf("e = %.2f/n", atof(e)); system("pause"); return 0;}
執行結果:
a = -100.23b = 2.00c = 341.00d = 100.34e = 0.00
新聞熱點
疑難解答
圖片精選