45.8 심사문제 답안좀 알 수 있을까요? 아래와 같이 코드를 짰는데 의도한대로 작동하지 않습니다. 무엇을 잘못한건지 모르겠네요
#include<stdio.h>
#include<string.h>
int main(void)
{
char s1[1000];
char *ptr=strstr(s1, "the");
int i=0;
scanf("%[^\n]s", s1);
while(ptr !=NULL)
{
ptr = strstr(ptr+1, "the");//the가 들어간 문장 총 검색
if(strcmp(s1, "the")==0)//the일시 i++
{
i++;
}
}
printf("%d", i);
return 0;
}
while에 중단점을 걸고 실행해보면 ptr의 값이 NULL이므로 반복문이 실행되지 않습니다.
데이터를 읽어오지 못했다는 뜻입니다. 입력을 받지 못했다는 뜻이죠.
char s1[1000];
변수 s1을 선언했고
char *ptr=strstr(s1, "the");
변수 s1은 값이 없는데 일단 "the"를 찾아보기로 했고
없으니까 ptr은 NULL이 된다
int i=0;
변수 i는 0으로 초기화
scanf("%[^\n]s", s1);
이제 입력을 받아서 s1에 저장한다
while(ptr !=NULL)
ptr은 NULL이니까 ptr != NULL 조건을 만족할 수 없으니 이 반복문은 통과.
프로그램은 종료.
결과는 0
이렇게 됩니다.