我想比较两个const char *代码如下。两个字符指针的比较
void compare(const char *name){
const char *name1;
if(!strcmp(*name,*name1){
printf("true");
}
}
错误是:从 '字符' 到 '为const char *' 我需要帮助无效的转换。
我想比较两个const char *代码如下。两个字符指针的比较
void compare(const char *name){
const char *name1;
if(!strcmp(*name,*name1){
printf("true");
}
}
错误是:从 '字符' 到 '为const char *' 我需要帮助无效的转换。
if(!strcmp(name,name1))
- 你的变量name
和name1
已经是三分球。
但是,单凭这一点不会神奇地使它工作。为什么要比较name1
的未初始化值?
到strcmp应该是指向char,没有字符,所以不尊重指针的参数,你已经有了:
if (!strcmp(name,name1)) {
你已经在使用指针,因为字符*是字面意思是“字符指针”。你只需要把*出来。但请注意,strcmp比较字符串,而不是字符或指针。我不知道你正在尝试做的,但如果你正在寻找比较,如果它们是同一个对象,只是做:
if (name1 == name2) ...
但是,如果你是比较它们的内容,你需要他们提领:
if (*name1 == *name2) ...
如果他们是字符串,然后只需使用:
if (strcmp(name1, name2) == 0) ...
希望这有助于
添加第二个“) '在strcmp之后。计算括号! – usr2564301
非常感谢你name1是一个const char *的结构:-)再次感谢你。 –
你说name和name1已经是指针了,这可能意味着*给出了一个指向变量的指针,而不是。 &给出地址。在这方面,Joni的答案可能更清楚。 – Joe