程序打印字符数而不是单词

时间:2015-10-03 00:49:25

标签: c

我正在尝试让我的程序打印出测试字符串中的单词数量,但它会打印出更大的数字。例如,我的测试字符串有24个单词,我的程序打印出102。我想知道它为什么这样做。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {

    char testval[1024]="This is a test... this is only a test... for the next sixty seconds this will be a test of the emergency broadcasting system.";

    int inWord=0;
    int wordCount=0;
    int i=0;
    while(testval[i] != 0) {
            if (testval[i]==' ') {
                    if (inWord) inWord=0;
            } else {
                    if (!inWord)
                            inWord=1;
                            wordCount++;
            }
            i++;
    }

    printf("The number of words in testval is %d\n",wordCount);
    return 0;
}


./numWords
The number of words in testval is 102

2 个答案:

答案 0 :(得分:2)

{}

你错过了一对wordCount++;来附上2个陈述。 所有非空格字符都执行了name

答案 1 :(得分:1)

对于每个空格,只需递增propertyTypes = [ {key:'OFFICE', value:false}, {key:'RESIDENTIAL', value:false}, {key:'RETAIL', value:false}, {key:'INDUSTRIAL', value:false}, {key:'HOTEL', value:false} ]; property_types= [ { type: "OFFICE" }, { type: "RETAIL" } ]; propertyTypes.forEach(function(pType) { for (index = 0; index < property_types.length; ++index) { if(pType.key==property_types[index].type){ pType.value = true; break; } } }); 。最后添加一个,你就得到了答案。