首页 > 解决方案 > 我无法计算字符串中的单词

问题描述

int FindWords(char *str)
{
    int i, word = 1;

    for (i = 0 ; *(str + i)! = '\0'; i++) {
        if (isspace(*str + i)) {
            if (isspace(*str + i + 1)) {
                continue;
            }
            word++;
        }
    }
    return word;
}

我无法计算字符串中的单词。我用谷歌搜索了这个isspace()功能。

标签: cstring

解决方案


int FindWords(char *str) {
     int i = 0, length = 0, word = 0;

     length = strlen(str);

     for (i = 1 ; i < length; i++) {
         if (str[i] == ' ' && str[i-1] != ' ') {
             word++;
         }
     }

     if ( strlen(str)> 0) {
        if (str[length-1] != ' '){
            word++;
        }
     }

     return word;
 }

我会那样做。循环字符串中的所有字符,每次我们落在一个空格上并且前面的字符不是空格时,这意味着我们刚刚完成了一个新单词,所以我们增加了单词。如果最后一个字符不是空格,我们还会在最后增加 word。

strlen(str) 给我 str 字符串中的字符数。


推荐阅读