나는 명령에서 입력 해야하는 프로그램을 작성하고 다음 입력의 단어 빈도를 찾습니다. 문자열 (char 배열)을 strcmp() 함수를 사용하여 비교하는 데 문제가 있습니다. 나는 몇 시간 동안 그 일을 해왔지만 아직도 내가 잘못하고있는 것을 이해하지 못한다. 포인터와 관련이 있습니까? 여기 내 내 코드 : 당신은 여기 세그멘트 폴트를 요구하고C에서 strcmp() 함수를 사용하여
#include <stdio.h>
#include <string.h>
int main(){
char Words[501][21];
int FreqNumbers[500];
char temp[21] = "zzzzz";
char Frequency[5][21];
int wordCount = 0;
int numberCount = 0;
int i = 0;
int counter = 0;
int end = 0;
do {
scanf("%20s",Words[wordCount]);
for(counter = 0;counter < wordCount;counter++){
if(wordCount > 0){
if(strcmp(Words[wordCount], Words[counter]) == 0){
FreqNumbers[counter]++;
break;
}
FreqNumbers[wordCount]++;
}
}
wordCount++;
printf("%s", Words[wordCount - 1]);
printf("%s", temp);
} while(strcmp(Words[wordCount],&temp) != 0);
return(0);
}
문제가 무엇인지 알려주지 않았기 때문에 말하기 어렵습니다. –
코드를 디버깅해야한다고 말하고 싶습니다. 예를 들어, 초기화되지 않은 값은 어떻게됩니까?'FreqNumbers'에서 각 항목의 초기 값은 무엇입니까? –
내가 가지고있는 문제는 while 루프가 끝나지 않는다는 것입니다. 심지어 5 개의 z를 입력해도 while 루프를 종료해야합니다. 그리고 가난한 코딩에 대해 유감스럽게 생각합니다. 저는 C를 처음 접했습니다. =/ –