我正在尝试比较下面给出的两个 const char* 代码。
void compare(const char *name){
const char *name1;
if(!strcmp(*name,*name1){
printf("true");
}
}
错误是:从 'char' 到 'const char *' 的无效转换我需要帮助。
我正在尝试比较下面给出的两个 const char* 代码。
void compare(const char *name){
const char *name1;
if(!strcmp(*name,*name1){
printf("true");
}
}
错误是:从 'char' 到 'const char *' 的无效转换我需要帮助。
if(!strcmp(name,name1))
-- 你的变量name
和name1
已经是指针。
然而,仅凭这一点并不能神奇地让它发挥作用。为什么要与未初始化的值进行比较name1
?
您已经在使用指针,因为 char * 字面意思是“char 指针”。你只需要去掉*。但请注意 strcmp 比较的是字符串,而不是字符或指针。我不知道您要做什么,但是如果您想比较它们是否是同一个对象,请执行以下操作:
if (name1 == name2) ...
但是,如果您要比较它们的内容,则需要取消引用它们:
if (*name1 == *name2) ...
如果它们是字符串,则只需使用:
if (strcmp(name1, name2) == 0) ...
希望这可以帮助
strcmp 的参数应该是指向 char 的指针,而不是 chars,所以不要尊重你已经拥有的指针:
if (!strcmp(name,name1)) {