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-bはありません。

于 2013-02-21T01:49:10.337 に答える