我必須將字符串「death」與文本文件中的任意五個字符串進行比較。如何正確執行strcmp?
我似乎無法讓我的函數來工作,但我看不到我在做什麼錯。任何人有任何建議?
*注:我只的strcmp返回-1或1,但從來沒有0
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
//Function to check if strings are a match regardless of case
bool doesMatch (char testText[], char testDeath[]) {
if (strcasecmp(testDeath, testText) == 0) {
return true;
}
else
return false;
}
int main (int argc, char *argv[]) {
char test1[5] = {getchar(), getchar(), getchar(), getchar(), getchar()};
bool testMatch;
char test2[5] = {'d','e','a','t','h'};
//Test arrays until End of FIle
while (test1[4] != EOF) {
testMatch = doesMatch(test1, test2);
if (testMatch == true) {
printf ("Match!\n");
}
//"slide" array down one character
test1[0] = test1[1];
test1[1] = test1[2];
test1[2] = test1[3];
test1[3] = test1[4];
test1[4] = getchar();
}
return 0;
}
'的strcmp()'只能比較空終止字符串。 – Havenard 2013-04-05 01:34:37
如果你正在使用'testMatch ==真',我認爲這應該被標記爲C++,不C. – 2013-04-05 01:38:11
究竟你「我只的strcmp -1或1,但從來沒有返回0」是什麼意思?你實現了你自己的strcmp,它應該返回0但不是? – Kevin 2013-04-05 01:42:01