ctype.h字元函式和字串
阿新 • • 發佈:2018-11-10
ctype.h存的是與字元相關的函式;
這些函式雖然不能處理整個字串,但是可以處理字串中的字元;
ToUpper()函式,利用toupper()函式處理字串中的每個字元,轉換成大寫;
PunctCount()函式,利用ispunct()統計字串中的標點符號個數;
使用strchr()處理fgets()讀入字串的換行符;這樣處理沒有把緩衝區的剩餘字元清空,所以僅適合只有一條輸入語句的情況。s_gets()適合處理多條輸入語句的情況。
1 #include <stdio.h> 2 #include <string.h> 3 #include <ctype.h> 4#define LIMIT 81 5 6 void ToUpper(char *); 7 int PunctCount(const char *); 8 9 int main(void) 10 { 11 char line[LIMIT]; 12 char * find; 13 14 puts("Please enter a line:"); 15 fgets(line,LIMIT,stdin); 16 find = strchr(line, '\n'); 17 if(find) 18 *find ='\0'; 19 ToUpper(line);20 puts(line); 21 printf("That line has %d punctuation characters.\n",PunctCount(line)); 22 23 return 0; 24 } 25 26 void ToUpper(char * str) 27 { 28 while(*str) 29 { 30 *str =toupper(*str); 31 str++; 32 } 33 } 34 35 int PunctCount(const char * str) 36 { 37 intct =0; 38 while(*str) 39 { 40 if(ispunct(*str)) 41 ct++; 42 str++; 43 } 44 45 return ct; 46 }