入力を一般的な単語の辞書と照合し、入力がpassHistoryファイルに保存されている以前の入力と一致するかどうかを確認する次のコードがあります。私の問題は、Cの文字列を比較するstrcmpメソッドが正しく実行されていないように見えることです。私のコードでは、passHistoryで使用されている一般的な単語または入力がすでに使用されている場合、適切なエラーが表示されないためです。
いくつかのガイダンスをいただければ幸いです。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#define MAX 30
#define gC_FOUND 99
#define gC_NOT_FOUND -99
int checkWordInFile(char * fileName,char * theWord);
int main()
{
char userString[MAX + 1];
int iResult;
printf("Enter your string: ");
gets(userString);
printf("\n\nYou entered: %s, please wait, checking in dictionary.\n\n", userString);
iResult = checkWordInFile("dictionary.txt",userString);
if( iResult == gC_FOUND )
{
printf("\nFound your word in the dictionary");
}
else
{
printf("\nCould not find your word in the dictionary");
}
iResult = checkWordInFile("passHistory.txt",userString);
if( iResult == gC_FOUND )
{
printf("\nPassword used");
}
else
{
printf("\nOk to use!");
}
printf("\n\n\n");
system("pause");
} /* end of main */
int checkWordInFile(char * fileName,char * theWord){
FILE * fptr;
char fileString[MAX + 1];
int iFound = -99;
//open the file
fptr = fopen(fileName, "r");
if (fptr == NULL)
{
printf("\nNo dictionary file\n");
printf("\n\n\n");
system("pause");
return (0); // just exit the program
}
/* read the contents of the file */
while( fgets(fileString, MAX, fptr) )
{
if( 0 == strcmp(theWord, fileString) )
{
iFound = -99;
}
}
fclose(fptr);
return(0);
}//end of checkwORDiNFile