1

ここで C を学習している初心者です。テキストの段落を入力してから、2 つの関数を記述する必要があります。

最初の関数は、テキストの最初の文字をすべて大文字にします。(これは一例です)

2 番目の関数は、段落内のすべての単語をカウントする必要があります。

私が取っている最初のステップは、段落を入力することです.最初の2つの文を追加することから始めました. この段落をすべて 1 行に記述せずに、この文字列にフォーマットするにはどうすればよいですか? どんな助けでも大歓迎です。ありがとう

int main (void)
{

char prose[] = "She should have died hereafter;
                There would have been a time for such a word.";

printf("%s\n",prose);




return 0;
}

これは、アルファベット以外の記号がどこにあるかを検出するために使用しようとしている while ループです。

while (prose[i])
{
    if (isalpha(prose[i]))
        printf("%c is alpha\n",prose[i]);
             else

                 printf("%c is not alpha\n",prose[i]);
                i++;

        }

ここからどこに移動するかについて何か助けはありますか?

4

2 に答える 2

2

C の隣接する文字列リテラルは 1 つの文字列に連結されるため、次のように複数の行に簡単に分割できます。

char prose[] = "She should have died hereafter;\n"
               "There would have been a time for such a word.";

stdin(最終的には、散文をプログラムにハードコーディングするのではなく、ファイルまたはおそらく から読みたいと思うかもしれません。)

文字を大文字にするには、一度に 1 文字ずつ文字列を反復処理し、前の文字がアルファベット文字でない場合 (または基準が何であれ)、すべてのアルファベット文字を大文字にします。ctype.h役立つ機能については、 を参照してください。

単語のカウントについても同様のことができますが、文字列を変更する代わりに、新しい単語にヒットするたびにカウンターをインクリメントするだけです。

どちらの場合も、コードが最初と最後の単語を正しく処理していることを確認してください。

于 2013-11-15T01:16:30.453 に答える