본문 바로가기
언어/C언어

[C언어] strstr 함수 사용

by 코딩히어로 2023. 10. 27.
728x90

C 언어의 strstr 함수는 문자열에서 하위 문자열을 검색하는 데 사용됩니다. 이 함수는 매우 유용하며 문자열 처리와 검색 작업에서 자주 활용됩니다. strstr 함수의 사용 방법과 동작 원리를 자세히 살펴보겠습니다.

 

1. 함수의 선언과 기능

 

strstr 함수는 <string.h> 헤더 파일에 선언되어 있습니다. 함수의 선언은 다음과 같습니다

char *strstr(const char *haystack, const char *needle);
  • haystack: 검색 대상이 되는 문자열입니다.
  • needle: 찾고자 하는 부분 문자열입니다.

strstr 함수는 needle 문자열이 haystack 문자열 내에서 발견되는 위치를 찾아 해당 위치의 포인터를 반환합니다. 만약 needle을 찾을 수 없으면 NULL 포인터를 반환합니다.

 

예제1)

#include <stdio.h>
#include <string.h>

int main() {
    const char *haystack = "Hello, World! This is a simple example.";
    const char *needle = "World";
    
    char *result = strstr(haystack, needle);
    
    if (result) {
        printf("'%s' found at position %ld\n", needle, result - haystack);
    } else {
        printf("'%s' not found in the haystack.\n", needle);
    }
    
    return 0;
}

이 예제는 "haystack" 문자열에서 "needle" 문자열을 검색하고, 찾으면 위치를 출력합니다.

 

예제2)

#include <stdio.h>
#include <string.h>

int main() {
    const char *haystack = "abcabcabcabc";
    const char *needle = "abc";
    char *result = (char *)haystack;
    int count = 0;
    
    while ((result = strstr(result, needle)) != NULL) {
        printf("Found '%s' at position %ld\n", needle, result - haystack);
        result += strlen(needle);
        count++;
    }
    
    if (count == 0) {
        printf("'%s' not found in the haystack.\n", needle);
    }
    
    return 0;
}

이 예제는 "haystack" 문자열에서 "needle" 문자열을 반복적으로 검색하고, 모든 발생 위치를 출력합니다.

 

예제3)

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main() {
    const char *haystack = "Hello, world! This is a Case-Insensitive Example.";
    const char *needle = "case-insensitive";
    
    char *result = (char *)haystack;
    int count = 0;
    
    while ((result = strstr(result, needle)) != NULL) {
        printf("Found '%s' at position %ld\n", needle, result - haystack);
        result += strlen(needle);
        count++;
    }
    
    if (count == 0) {
        printf("'%s' not found in the haystack.\n", needle);
    }
    
    return 0;
}

이 예제에서는 strcasestr 함수를 사용하여 대소문자 구분 없이 문자열을 검색합니다.

 

strstr 함수는 C 언어에서 문자열 검색에 사용되는 강력한 도구입니다. 

이 함수를 이용하면 문자열에서 원하는 패턴을 찾을 수 있으며, 대소문자 구분 여부를 선택할 수 있습니다. 

strstr 함수를 활용하여 다양한 문자열 처리 작업을 수행할 수 있습니다.

728x90
반응형

댓글