1

我已经创建了一个数组,现在我正在尝试比较两个字符串的第一个符号,以及打印该单词是否正确。但是我遇到了一个问题:

将“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而不使用 awhile是语法错误;您不需要嵌套循环来解决您的问题。
  • 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 回答