목차
1. strstr 함수란?
strstr 함수는 C언어에서 문자열에서 특정 부분 문자열(substring)을 찾아주는 함수입니다.
대상 문자열에서 찾고자 하는 부분 문자열이 첫 번째로 나타나는 위치의 포인터를 반환합니다.
2. strstr 함수 원형과 인자 및 반환 값 설명
strstr 함수의 원형과 인자, 반환 값에 대해 설명합니다.
char* strstr(const char* haystack, const char* needle);
haystack
: 대상 문자열로부터 찾고자 하는 부분 문자열을 검색합니다.needle
: 찾고자 하는 부분 문자열로 haystack 문자열 내에서 검색합니다.- 반환 값: haystack 문자열에서 needle 부분 문자열의 첫 번째 등장 위치를 가리키는 포인터를 반환합니다. 만약 찾고자 하는 문자열이 존재하지 않을 경우
NULL
을 반환합니다.
3. strstr를 사용하여 특정 문자열 찾기 예제
아래는 strstr
함수를 사용하여 대상 문자열에서 부분 문자열을 찾는 예제입니다.
#include <stdio.h>
#include <string.h>
int main() {
const char plain_text[] = "Hello, World!";
const char target[] = "World";
char* result = strstr(plain_text, target);
if (result != NULL) {
printf("찾은 문자열: %s\n", result);
} else {
printf("문자열을 찾을 수 없습니다.\n");
}
return 0;
}
4. strstr 활용 예제 2
대상 문자열에 여러 번 등장하는 부분 문자열을 찾는 예제입니다.
#include <stdio.h>
#include <string.h>
int main() {
const char plain_text[] = "apple, banana, orange, banana";
const char target[] = "banana";
char* result = strstr(plain_text, target);
int count = 0;
while (result != NULL) {
count++;
printf("발견 #%d: %s\n", count, result);
result = strstr(result + 1, target);
}
return 0;
}
5. strstr 사용시 주의점
strstr 함수를 사용할 때 주의해야 할 점은 다음과 같습니다.
- 대소문자 구분: strstr 함수는 대소문자를 구분합니다. 대소문자를 무시하고 비교하려면 추가적인 처리가 필요합니다.
- NULL 반환: 찾고자 하는 문자열이 존재하지 않을 경우 NULL을 반환합니다. 결과를 사용하기 전에 반환 값을 체크하는 것이 중요합니다.
- 메모리 오버런: 대상 문자열의 메모리 영역을 벗어난 위치에서 검색할 경우 예기치 않은 동작이 발생할 수 있습니다. 항상 메모리 경계를 체크해야 합니다.
반응형