我做了一个数组,现在我试着比较两个字符串的第一个符号,如果打印那个单词是真的。但我有个问题:
“int”到“char”[20]赋值中的不兼容类型
代码如下:

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

也许你们能帮我?

最佳答案

代码有几个问题:
您不需要strncmp来比较第一个字符-您只需要一个简单的==!=
使用不带dowhile是语法错误;不需要嵌套循环来解决问题。
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'
    }
}

10-08 16:55