https://blog.naver.com/tipsware/221371715770
블로그 글이 복사가 안돼서 링크 달았음
링크에서 완성된코드에서
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문이 의도한대로 종료가 되잖아.
그러니까 두 문장이 전부 있어야할 필요는 없는거 아님?
뉴비점 도와주샘 ㅠㅠ
하나 없어도 되긴한데 둘다 적으면 명확하자나ㅇㅅㅇ
아 일단 둘 중 어느 쪽이던 널 캐릭터를 만나면 멈춰야 하니까 그걸 명확히 표시해주기 위해 적어놓은거라는거임? 정말 ㄳㄳ
strstr이 뭐였지
strstr("abcdefg", "def") abcdefg에서 def를 찾는데 성공하면 맨 앞인 d자리의 포인터를 리턴해주고 찾지 못하면 널 캐릭터를 리턴해준다. 고 하는데?
블로그에도 설명 되잇넹