【c实现,vc6调试通过】给出一字符串指针,计算出字符串指针中单词数

 1 #include <stdio.h>

 2 

 3 /*

 4     给出一字符串指针,计算出字符串指针中单词数,

 5     单词不包括'.',',',';','?','_','"',由0-9数字或26个字母组成

 6     by zww @ 2013.09.26

 7     vc 6.0编译通过

 8 */

 9 

10 unsigned int get_string_word_cnt(const char* pStr)

11 {

12     unsigned int iCnt= 0;

13     unsigned int iCharCnt = 0;

14     const char* p = pStr;

15 

16     if (NULL == pStr)

17     {

18         return 0;

19     }

20 

21     while ('\0' != *p)

22     {

23         if (('.' == *p)

24             || (',' == *p)

25             || (';' == *p)

26             || ('?' == *p)

27             || (' ' == *p)

28             || ('_' == *p)

29             || ('"' == *p))

30         {

31             printf("[%c]",*p);

32             iCharCnt=0;

33         }  

34         else if (!((*p >= 'a'&& *p<='z')

35             || (*p >='A' && *p<='Z')

36             || (*p >= '0' && *p <='9')))

37         {

38             printf("[%c]",*p);

39             iCharCnt = 0;

40         }

41         else if (0 == iCharCnt)

42         {

43             iCharCnt++;

44             iCnt++;

45         }

46 

47         p++; 

48     }

49 

50     return iCnt;

51 }

52 

53 

54 

55 int main()

56 {

57     char * str1 = "hello world.1...2";

58     char * str2 = "hello world.sd,fg!@!$!$!!!!!!!!!!!!hj.";

59     char * str3 = "hello world.fdfg)(*&&&*(hjdfh?>><>,...";

60     char * str4 = ".hello world.12";

61     int i = 0;

62     i = get_string_word_cnt(str1);

63     printf(" %d\r\n",i);

64     i = get_string_word_cnt(str2);

65     printf(" %d\r\n",i);

66     i = get_string_word_cnt(str3);

67     printf(" %d\r\n",i);

68     i = get_string_word_cnt(str4);

69     printf(" %d\r\n",i);

70 

71     return 0;

72 }

73 

74 /**

75     显示结果如下:

76 [ ][.][.][.][.]4

77 [ ][.][,][!][@][!][$][!][$][!][!][!][!][!][!][!][!][!][!][!][!][.]5

78 [ ][.][)][(][*][&][&][&][*][(][?][>][>][<][>][,][.][.][.]4

79 [.][ ][.]3

80 Press any key to continue

81 **/

 

你可能感兴趣的:(字符串)