44.7 심사문제 질문입니다.
, 호옹 이님이 작성int main()
{
char* s1 = malloc(sizeof(char) * 1001);
scanf("%[^\n]s", s1);
int count = 0;
while (s1 != NULL)
{
s1 = strchr(s1 + 1, ' ');
count = count + 1;
printf("빈칸%s\n", s1);
}
printf("%d\n", count);
free(s1);
return 0;
}
저는 자꾸 95가 나와서 확인해보니 마지막에(NULL)까지 합쳐서 95개가 되는 것 같은데 NULL을 제외할 방법이 있는건가요?
Re: 44.7 심사문제 질문입니다.
, 도장_ 관리자님이 작성C 언어는 문자열의 끝을 NULL로 구분합니다.
NULL을 제외할 방법은 없습니다.
1000문자를 저장하고 싶다면 NULL을 포함해 1001문자를 할당하고,
카운트에서는 1000문자까지만 저장되니 NULL이 카운트된다면 1을 뺀 결과를 출력하면 됩니다.