Language/C언어
C034_strstr 함수 구현해서 사용하기
OdOp 관리자
2023. 10. 29. 10:00
반응형
strstr은 두개의 문자열을 입력받습니다.
첫 번째로 입력받은 문자열을 str, 두 번째로 입력받은 문자열을 to_find라고 할때에 str에서 tofind를 찾아서 str안의 to_find의 포인터를 반환해줍니다.
한번 작동되는 것을 살펴보겠습니다.
#include <stdio.h>
#include <string.h>
int main()
{
char s1[14] = "Hello, World!";
char* ptr1 = strstr(s1, "World");
char* ptr2 = strstr(s1, "o,");
printf("%s\n", ptr1); //World!
printf("%s\n", ptr2); //o, World!
return 0;
}
그런데 일치하는 부분이 없다면 아무것도 출력하지 않게 됩니다.
한마디로 null pointer을 출력한다고 보시면 편하겠죠.
#include <stdio.h>
#include <string.h>
int main()
{
char s1[14] = "Hello, World!";
char* ptr = strstr(s1, "world");
printf("%s\n", ptr); //
return 0;
}
이제 한번 함수를 구현해 보겠습니다.
strstr 함수
char *OdOp_strstr(char *str, char *to_find)
{
int i;
if (*to_find == '\0')
return (str);
while (*str != '\0')
{
if (*str == *to_find)
{
i = 0;
while (str[i] != '\0' && to_find[i] != '\0' && str[i] == to_find[i])
{
i++;
}
if (to_find[i] == '\0')
return (str);
else if (str[i] == '\0')
return (0);
}
str++;
}
return (0);
}
반응형