1. 程式人生 > >ctype.h字元函式和字串

ctype.h字元函式和字串

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 int
ct =0; 38 while(*str) 39 { 40 if(ispunct(*str)) 41 ct++; 42 str++; 43 } 44 45 return ct; 46 }