2014-03-02 46 views
1

我已经创建了一个数组,现在我试图比较两个字符串的第一个符号,如果它是真的打印该单词。但我有一个问题:查找具有相同第一个字符的单词

不兼容的类型assignmentof “INT” 到 “字符”[20]”

下面是代码:

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

也许你们可以帮助我?

+0

哪条线这个错误讯息对应?涉及的所有变量的声明是什么? –

+1

对不起,你的代码没有任何意义。那里有做什么?什么是“if”控制?请显示一切的类型。 – Mat

+0

你有语法错误 – mangusta

回答

2

您的代码有几个问题:

  • 您不需要strncmp来比较第一个字符 - 所有你需要的是一个简单的==!=
  • 使用do而不是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' 
    } 
} 
+0

非常感谢! – user3370335

相关问题