C說話中一些將字符串轉換為數字的函數小結。本站提示廣大學習愛好者:(C說話中一些將字符串轉換為數字的函數小結)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中一些將字符串轉換為數字的函數小結正文
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: 233cyuyan The 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: 1200cyuyan The 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.23 b = 2.00 c = 341.00 d = 100.34 e = 0.00