国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中一些將字符串轉換為數字的函數小結

2020-01-26 14:57:47
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 吴桥县| 永年县| 印江| 大悟县| 平邑县| 遂川县| 长汀县| 白玉县| 策勒县| 桐梓县| 汪清县| 天台县| 安龙县| 开封市| 宜城市| 宣武区| 揭东县| 勐海县| 四会市| 黄龙县| 揭西县| 西平县| 镇赉县| 房产| 江阴市| 筠连县| 囊谦县| 容城县| 汾西县| 汤原县| 郑州市| 分宜县| 勐海县| 南丰县| 灌云县| 民勤县| 嵊州市| 长垣县| 简阳市| 越西县| 天峨县|