3

我目前正在通过字数统计程序来。我有一个棘手的练习。
我不明白这个练习到底要我做什么。

这里是练习本身
修改单词计数程序以使用更好的“单词”定义,例如以字母开头的字母、数字和撇号序列

我无法得到它真正想要的东西。它要我计算符号数字撇号或以太它要我为所有这些符号数字等命名,例如“单词”-将是A(") word comma(,) A(") 或有其他东西。

这是计算行数、字符数和换行数的程序

#include <stdio.h>

#define YES 1
#define NO 0

main ()
{
    // CTRL+Z will Signal to EOF-End of File 
    int c,nl,nw,nc,inword;  //nl -new line
                            //nw -new word
                            //nc -new chatacter
                            //inword -program in word or not

    inword=NO;
    nl=nw=nc=0;
    while ((c=getchar()) !=EOF)
    {
        ++nc;
        if (c == '\n')
            ++nl;
        if (c == ' ' || c == '\t' || c == '\n')
            inword=NO;
        else if (inword==NO)
        {
            inword=YES;
            ++nw;
        }
    }
    printf("%d %d %d\n", nl,nw,nc);

    getchar(); 
}

你们能向我解释一下练习想要我做什么吗?我不需要已经完整的代码。我想自己完成编码。我只是没有得到我在练习中真正需要做的事情。

4

1 回答 1

4

您发布的程序将由空格分隔的所有内容视为一个单词。所以这些都是词:12 a,b123456 2-3@!#

它要求您使用更好的单词定义来改进程序,并举例说明:“以字母开头的字母、数字和撇号序列”。

所以在这个例子中John'sanda123是一个词,但是12, 1aand a-bare not。

于 2013-02-21T01:49:10.337 回答