C語言 - 第十六章 | 字串 - 轉換、測試
轉換
若要將字串轉換為數字,則可以使用atoi()、atol()、atof()函式,可分別將字串轉換為int、long int,與double,這些函式都包括在stdlib.h中。
1 2 3
| int atoi(const char*); int atol(const char*); double atof(const char*);
|
atoi()、atol()或atof()會搜尋字串中可以轉換的部份,直到遇到無法轉換的字元。
- 字串開頭可以使用正負號。例如
"+100"或"-100"。
atof()可以接受科學記號。例如"12.3e-5"或"123E+4"。
- 這幾個函式若沒有可轉換的字元則傳回
0。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include <stdio.h> #include <string.h> #include <stdlib.h> #define LENGTH 80
int main() {
char str1[LENGTH]; char str2[LENGTH]; char str3[LENGTH];
printf("輸入字串 for int:"); fgets(str1, LENGTH, stdin);
printf("輸入字串 for long int:"); fgets(str2, LENGTH, stdin);
printf("輸入字串 for double:"); fgets(str3, LENGTH, stdin);
printf("%d\n", atoi(str1)); printf("%ld\n", atol(str2)); printf("%f\n", atof(str3)); return 0; }
|

測試
若要測試字元為數字、字母、大寫、小寫等等,可以使用ctype.h中的isxxxx()函式。
1 2 3 4 5 6 7 8 9 10 11
| isalnum(int c):是否為字母或數字 isalpha(int c):是否為字母 iscntrl(int c):是否為控制字元 isdigit(int c):是否為數字 islower(int c):是否為小寫字母 isprint(int c):是否為列印字元 ispunct(int c):是否為標點符號 isspace(int c):是否為空白 isupper(int c):是否為大寫字母 isxdigit(int c):是否為16進位數字 ...
|
詳細可以參考:<ctype.h> - C語言標準庫
註:以上參考了
hackersir gitbooks
字串轉換、字元測試
極客書 - C語言標準庫