https://blog.naver.com/tipsware/221371715770

[실습] strstr 함수 만들기 - Step1: C 언어 관련 전체 목차 http://blog.naver.com/tipsware/221010831969 1. strstr 함수에 대하여 strcmp ...blog.naver.com

블로그 글이 복사가 안돼서 링크 달았음

링크에서 완성된코드에서


while (*p_pos != '\0' && *p_find_pos !='\0' && *p_pos == *p_find_pos)


이 부분이 이해가 잘 안됨 ㄷㄷ

일단


*p_pos == *p_find_pos


가 있어야 하는 이유는 알겠음 왜냐면 strstr함수는 1번 문자열에서 2번 문자열을 찾는 건데

위의 코드가 있어야 계속해서 같은 문자인지 확인할 수가 있으니까

그런데


*p_pos != '\0'


이거랑


*p_find_pos !='\0'


이거가 동시에 존재해야 하는 이유를 잘 모르겠음

둘 중 하나만 있어도 함수는 제대로 작동하는 거 아님?

1번 문자열이 "aaaatarget", 2번 문자열이 "target" 이라고 할 때

while문이 돌다가 마지막에 둘 다 NULL 캐릭터를 만나도

두 문장중 하나만 있어도while문은 의도한 대로 종료가 되잖아

만약 1번이 "targetaaaa" 2번이 "target"이라고 할 때도


*p_find_pos !='\0'


이 문장이 없어도 p_find_pos가 NULL 캐릭터를 만나면


*p_pos == *p_find_pos


이 문장에 의해서 while문이 의도한대로 종료가 되잖아.


그러니까 두 문장이 전부 있어야할 필요는 없는거 아님?


뉴비점 도와주샘 ㅠㅠ