单词统计程序
一個簡單的單詞統(tǒng)計程序, 問題來源: http://topic.csdn.net/u/20111114/10/2e439bbf-04c5-4042-9905-ece0bf008b97.html
?
/* 功能:實現(xiàn)單詞統(tǒng)計功能 */#include <stdio.h> #include <string.h>main() {char *t[20]; // 聲明一個指針數(shù)組,長度為20char (*t2)[20]; // 聲明一個指針,該指針指向含20個元素的數(shù)組printf("%d: %x, %x\n", sizeof(t), t, t+1);printf("%d: %x, %x\n\n", sizeof(t2), t2, t2+1);//return 0;int i=0,j=0,nLen;char *p,*q,str[]="My ti* me is! limi#ted.",words[100][20];memset(words,'\0',sizeof(words));p=str;while (*p){//if (*p==' ' || *p=='!' || *p==',' || *p=='.' || *p=='?')if(!(isalpha(*p) || isdigit(*p))) // 不是字母也不是數(shù)字,則為一個單詞的結(jié)束{if(j > 0) // 當(dāng)前單詞長度不為空{(diào)words[i++][j]='\0';j=0;}}else{if (j==0 && (*p >= 'a' && *p <= 'z')){words[i][j++]=*p - 32; // 將單詞首字母變成大寫}else{words[i][j++]=*p;} }p++;}// 法一:用pp=words[0];while (strlen(p) > 0) // 用p{printf("p: %x\t%s\n", p, p);p += 20;}printf("\n");// 法二:用p2char (*p2)[20] = words;while (strlen((const char*)p2) > 0) // 用p2{printf("p2: %x\t%s\n", p2, p2);p2++;}printf("\n");//法三:用wordsi = -1;while (strlen(words[++i]) > 0) // 用words{printf("wrods[%d]: %s\n", i, words[i]);} }
編譯運行:
?
總結(jié)