문자열 앞에 특정 문자열이 있는지 탐색을 하는 strstr 함수 사용법을 알아보겠습니다.
strstr 함수는 문자열에서 검색 문자열을 찾으면 시작 위치의 포인터를 반환합니다.
사용법
char *strstr(const char *haystack, const char *needle);
대상 문자열인 haystack에서 검색 문자열인 needle을 검색합니다.
검색 문자열이 대상 문자열에 존재한다면 시작 위치를 반환합니다.
문자열을 찾지 못하면 NULL을 반환합니다.
예제를 보겠습니다.
#include <string.h>
#include <stdio.h>
int main()
{
char s1[] = "abcdefg";
char *ptr;
// s1 문자열 "abcdefg" 에서 "cde"문자열을 찾습니다.
ptr = strstr(s1, "cde");
printf("%s\n", ptr);
return 0;
}
결과
cdefg
ptr에는 s1 문자열에서 문자 cde로 시작하는 부분부터 문자열이 저장됩니다.
문자열을 찾지 못한 경우에는 NULL을 반환하기 때문에 NULL 처리도 같이 작성해 주는 것이 좋습니다.
#include <string.h>
#include <stdio.h>
int main()
{
char s1[] = "abcdefg";
char *ptr;
// s1 문자열 "abcdefg" 에서 "cde"문자열을 찾습니다.
ptr = strstr(s1, "cdea");
// 검색 문자열을 찾은 경우에만 출력
if (ptr != NULL)
{
printf("%s\n", ptr);
}
return 0;
}
샘플 소스에서는 검색 문자열을 찾은 경우에만 출력하도록 하고 있습니다.
문자열을 치환하거나 삭제하는 등 처리를 할 때 NULL 값을 가지고 처리를 하면 생각지 못한 에러가 발생할 수도 있기 때문입니다.
댓글