C字符数组比较

C字符数组比较,c,C,假设我有两个字符数组 char names[] = { "Jen" , "Will" , "Smith" } ; char names2[] = {"Sam" , "Will" , "Dave"}; 我想检查两个数组在公共索引中是否都有一个公共元素 例如,名称[]和名称2[]在位置1都有“将”一词(从零开始) 我正试着用这种方法做 for(i = 0; i< 3; i++) { if(strcmp(names[i],names2[i]) == 0) printf("Sam

假设我有两个字符数组

char names[] = { "Jen" , "Will" , "Smith" } ;
char names2[] = {"Sam" , "Will" , "Dave"};
我想检查两个数组在公共索引中是否都有一个公共元素 例如,名称[]和名称2[]在位置1都有“将”一词(从零开始)

我正试着用这种方法做

for(i = 0; i< 3; i++)
{
    if(strcmp(names[i],names2[i]) == 0)
    printf("Same");
}
(i=0;i<3;i++)的

{
if(strcmp(名称[i],名称2[i])==0)
printf(“相同”);
}

但是我得到了这个错误“在需要字符串的地方找到字符”有什么想法吗?

char[]
是一个
char
数组,即字符串;您需要的是一个指向字符串文本的指针数组,因此它应该是:

const char * names[] = { "Jen" , "Will" , "Smith" } ;
const char * names2[] = {"Sam" , "Will" , "Dave"};
然后strcmp代码应该可以很好地编译


请注意,如果您必须使用用户提供的字符串(而不仅仅是字符串文本),那么您要么求助于
char*[]
和动态内存分配,要么求助于一个大的二维字符数组(
char names[STRNUM][strmaxlinght]
)。

通常在c中,我们将字符串声明为char name[],如果您正在创建字符串数组,则表示您的声明应该是char name[][]

嗯,括号太多了。你在戴夫之后少了一个引号。对于代码中的每一个小语法错误,如果您都这么做,那么您不会走得太远。。。你的编译器可能指出的错误。你忘记了
“Dave”
@JimBalter的结束引号是的,我在这里写的代码太快了,在我的代码中没有问题,我仍然收到错误。不要在这里写代码,发布代码——与你运行的代码相同。否则你就是在浪费你和我们的时间。我们不是通灵者,也猜不出你到底写了什么错误代码。