假设我有两个char数组
char names[] = { "Jen" , "Will" , "Smith" } ;
char names2[] = {"Sam" , "Will" , "Dave"};
我想检查两个数组是否在公共索引中都有一个公共元素 例如,名称[]和名称2 []在位置1(基于零)
中都有单词“Will”我试图用这种方式做到这一点
for(i = 0; i< 3; i++)
{
if(strcmp(names[i],names2[i]) == 0)
printf("Same");
}
但是我收到了这个错误“找到字符串的字符串”是什么意思?
答案 0 :(得分:2)
char []
是一个char
数组,即一个字符串;你想要的是一个指向字符串文字的指针数组,所以它应该是:
const char * names[] = { "Jen" , "Will" , "Smith" } ;
const char * names2[] = {"Sam" , "Will" , "Dave"};
然后strcmp
代码应编译好。
请注意,如果您必须使用用户提供的字符串(而不仅仅是字符串文字),那么您必须使用char * []
和动态内存分配,或者使用大型二维char数组(char names [STRNUM][STRMAXLENGHT]
)。
答案 1 :(得分:1)
通常在c中我们将字符串声明为char name [],如果你正在创建字符串数组意味着你的声明应该是char name [] []