Re: 45.8 특정 단어 개수 세기
, 도장_ 관리자님이 작성문자열을 자른 직후에는 결과가 NULL일 수 있습니다.
다만, 문자열을 자른 위치에 따라 작성하는 코드가 다를 수 있습니다.
while (ptrthe != NULL){
if (strcmp(ptrthe, "the") == 0)
{
thecount++;
}
ptrthe = strtok(NULL, " .,'");
}
이것도 방법이지만, 통상은
while (ptr != NULL)
{
ptr = strtok(NULL, " .,");
if (ptr != NULL && strcmp(ptr, "the") == 0)
count++;
}
{
ptr = strtok(NULL, " .,");
if (ptr != NULL && strcmp(ptr, "the") == 0)
count++;
}
이와 같은 방식입니다.
문자열을 자른 이후에 strcmp를 호출하는 방식이라면 NULL 검사를 하지만,
작성한 코드처럼 문자열을 마지막에 자르고 while 조건식에서 ptr != NULL로 검사하기
때문에 if에서 검사할 필요가 없어지는 것의 차이입니다.
정답 코드를 작성하는 방식은 여러 가지가 있습니다. 해설은 일반적인 방식에 대한 것입니다.