wordCur은 대문자 문자열이며 사전은 문자열에 대한 배열입니다. 단어를 입력해도 상관없이 항상 0이 반환됩니다.if 문이 작동하지 않습니까?
편집 : 코드를 조금 업데이트하고 요약을 추가했습니다. 일부 컨텍스트에 대한 나머지 프로그램의 버전. 이 여기에 나타낸 바와 같이,이
int main() {
FILE *ifp;
ifp = fopen("dictionary.txt", "r");
int* lDist[26];
int* lUsed[26];
int dictLen;
int i;
fscanf(ifp, "%d", &dictLen);
char dictionary[dictLen][7];
char* letters[7];
int scoreCur = 0;
int scoreHi = 0;
char wordCur[7];
char wordHi[7];
int isWord = 0;
//reads the dictionary into the array
for (i = 0; i < dictLen; i++) {
fscanf(ifp, "%s", &dictionary[i]);
}
scanf("%s", wordCur);
isWord = checkValid(wordCur, dictLen, dictionary);
if (isWord == 1) {
scoreCur = calcScore(wordCur);
}
//fclose(ifp); not sure why, but this causes a crash
return 0;
}
int checkValid (char *wordCur,int dictLen, char dictionary[dictLen]) {
int valid = 0;
int i;
for (i = 0; i < dictLen; i++){
int helper = strcmp(wordCur, dictionary[i]);
if (helper = 0){
valid = 1;
}
}
:'dictionary'가 배열이나 포인터도 아니다. – cnicutar
당신이 '*'전에 단어 ** 사전을 놓친 것 같아 ** – hmmftg
코드에서 일부 * 문자가 누락 된 것으로 의심됩니다. 그리고 포인터 평등을 검사하기 위해 포인터 주소를 비교하기보다는 strncmp를 사용하는 것이 좋습니다 –