當試圖比較char *和'\'以查看它們是否相同時,我只是使用了字符=='\',但它給了我這個警告信息,當我運行它時,我得到了段錯誤:11。片段如下。爲什麼'\'被認爲是int?
int strcompare(char *string1, char *string2) {
int i = 0;
while(string1[i] != 0 & string2[i] != 0) {
if (string1[i] != string2[i]) {
return false;
}
i++;
}
return true;
}
int special_character_is_in_pattern(char *pattern) {
int i = 0;
while(i<32) {
char *character = &pattern[i];
//int is_in = is_in_list(character, special_character_list);
return (strcompare(character, ".")|strcompare(character,"+")|strcompare(character,"?")|character == '\\') ? true : i++;
}
return false;
}
錯誤信息是這樣的:
a.c:39:102: warning: comparison between pointer and integer ('char *' and 'int')
return (strcompare(character, ".")|strcompare(character,"+")|strcompare(character,"?")|character == '\\') ? true : i++;
~~~~~~~~~^~~~~
a.c:50:49: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'char *' [-Wint-conversion]
printf("%d\n",special_character_is_in_pattern('\\'));
需要一些幫助,感謝
''x''是一個整數價值也是。由''\\''表示的字符僅僅是一個\。 – user2864740 2014-09-13 19:38:52
'...「?」)| * character =='\\')?真:我++;'字符是一個指針可變的,而不是一個字符。 – wildplasser 2014-09-13 19:40:24
我用*字符後沒有警告!謝謝:),但事情是它返回0這是錯誤的,當我執行此行:printf(「%d \ n」,special_character_is_in_pattern(「\\」)); – infinityplus1 2014-09-13 19:46:14