1

配列を作成しましたが、2 つの文字列の最初のシンボルを比較して、その単語を出力するのが正しいかどうかを確認しようとしています。しかし、私は問題を抱えています:

「int」の「char」への割り当てで互換性のない型[20]」

コードは次のとおりです。

for ( wordmas= 0; i < character; i++ )
{
  do {
    if (!strncmp(wordmas[i], character, 1)
  }
  puts (wordmas[i]);
}

多分あなたたちは私を助けることができますか?

4

1 に答える 1

2

コードにはいくつかの問題があります。

  • strncmp最初の文字を比較する必要はありません。必要なのは単純な==orだけ!=です。
  • adoなしで aを使用するwhileと、構文エラーになります。問題を解決するためにネストされたループは必要ありません。
  • characterは、外側のループで の進行を制限しi、 の単語の最初の文字と比較するためにも使用されwordmas[i]ます。これは間違いである可能性が非常に高いです。
  • それが配列であると仮定すると、ループヘッダーでのwordmasへの割り当ては間違っています。wordmas

特定の文字で始まる単語を探すコードは次のようになります。

char wordmas[20][20];
... // read 20 words into wordmas
char ch = 'a'; // Look for all words that start in 'a'
// Go through the 20 words in an array
for (int i = 0 ; i != 20 ; i++) {
    // Compare the first characters
    if (wordmas[i][0] == ch) {
        ... // The word wordmas[i] starts in 'a'
    }
}
于 2014-03-02T11:56:05.003 に答える