printf("nn[Extension Goal]n");
b = strtok(str, " ");
for (int i = 0; b != NULL;i++) {
strcpy(a[i], b);
b = strtok(NULL, " ,.");
}
int c = wordCnt + 1;
for (int i = 0; i<c; i++) {
int count = 1;
for (int j = i+1; j<c; j++)
if (strcmp(a[i],a[j])==0) {
count += 1;
}
printf("%s : %dn", a[i], count);
wordCnt+1은 단어 개수를 의미
str는 입력받을 문자열을 의미(실행할때마다 넣는 문자열에 따라 달라짐)
근데 이 코드를 실행했을 때 str 에 p g a g u 넣으면
p : 1
g : 2
a : 1
g : 1
u : 1
이렇게 출력돼서
뒤에 있는 g를 없애서
p : 1
g : 2
a : 1
u : 1 이렇게 출력하고싶음
Program program program일때
Program : 3 이렇게만 나오게
자꾸 글이 지워지네요
순회할떄 같은 횟수가 cnt되니까 cnt가 2이상일 경우는 continue로 넘기는 방법과 bool로 true false로 체크 방법요
ㄴ 전자의 방법은 예시로 들었던 program 맨 마지막 께 안 지워지지않음?
저 코드를 당연히 수정해야겠죠? continue하면 그 안의 반복문에서의 내용만 skip되니까
ㄴ bool은 C언어에 없지않음?
저기는 2중문이니까 j부분에서 검사할떄 저기 부분 그냥 break나 continue하면 숫자가 계속 +1이 안되니까 그부분은 체크안하는것만 생각했네요
bool 함수를 굳이 쓸 필요가 없이 0이냐 1이냐로 확인하는 방법도 있구 -1이냐 아니냐로 확인하는 방법도 있지요
고냥 if문 하나 더쓰면 너무 난잡하려나
그냥 출력부문에서 조건을 둬서 중복일 경우 출력안하게끔 하면 될 것 같습니다