• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

strstr 함수 구현 질문

24.02.13 21:52 작성 조회수 151

2

함수들을 직접 구현해보는 게 좋다고 하셔서 sprintf() 함수를 제외하곤 전부 구현하려고 노력해봤는데

strstr함수는 어떻게 해야 할지 모르겠어서 구글링을 해봤는데

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

이런 글을 발견했어요

코드를 따라치다 이해가 안되는 부분이 생겼는데

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

에서 *p_find_pos != 0와 *p_pos != 0이 둘 다 존재하는 이유가 궁금합니다.

strstr함수가 어떤 문자열에 특정 문자열이 포함되어있는지 확인하는 함수인데

만약 어떤 문자열과 특정 문자열이 완전히 똑같다면 while의 조건문에서

*p_pos == *p_find_pos 만 있으면 while문이 멈추지 않고 무한히 돌게 되니

널 캐릭터를 만나면 멈출 수 있게 *p_find_pos != 0나 *p_pos != 0 둘 중에 하나는 있어야 한다는 건 알겠는데

왜 둘 다 조건문에 있어야 하는지 잘 모르겠습니다.

강의 내용이 아니라 질문하기가 좀 그랬지만 이런 질문글을 올릴만한 곳을 찾지 못해 여기에 올립니다.

 

답변 항상 감사합니다.

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2024.02.13

안녕하세요, 질문&답변 도우미 Soobak 입니다.

 

우선, 먼저 질문에서 말씀해주셨지만 강의와 관련이 없는 내용에 대해서는 답변을 드리기가 어렵습니다.

개인적으로, 최근 열심히 학습하시는 분들의 의지에 방해가 되고 싶지 않아서, 코드 리뷰나 강의 내용과 다소 벗어나는 질문들에 대해서도 최선을 다해 답변을 드리고자 노력하고 있습니다.
하지만, '다른 블로그' 의 글에 대해서는 여러모로 답변이 곤란합니다.

저는 홍정모 교수님의 강의에 대한 질문&답변 도우미입니다.
정중히 양해를 부탁 드립니다.

 

원 블로그의 글쓴이 분께서 충분히 블로그 내용/코드 주석 등을 통해서 잘 설명해주신 것 같습니다.
지금까지 질문자님께서 해주신 질문들을 바탕으로 생각해보았을 때, 충분히 이해하실 수 있으실 것 같습니다.

약간의 도움을 드리자면, 문자열 1 이 "aaaatarget" , 문자열 2가 "target" 인 경우, 그리고 문자열 1 이 "targetaaaa" 문자열 2가 "target" 인 경우에 대해서 생각해보시면 이해에 도움이 되실 것 같습니다.

 

추가적으로, 홍정모 교수님께서 운영하시는 디스코드 커뮤니티 링크를 첨부드립니다.
해당 디스코드는 저도 틈틈히 확인하고 있으며, 저 보다 훌륭하신 분들도 많이 계시니, 참여해보시는 것이 함께 학습하시는 데에 도움이 되실 것 같습니다.

디스코드 : https://discord.gg/QkVU8QWUzS