我想比較兩個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