Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 strpbrk() 함수 완벽 정리 – 문자열 검색 원리와 예제


C 언어의 strpbrk() 함수는 첫 번째 문자열을 처음부터 순서대로 검사하면서, 두 번째 문자열에 포함된 문자 중 하나라도 일치하는 첫 번째 문자를 찾아내는 함수입니다.

검색 결과에 따라 반환값이 달라집니다.

  • 일치하는 문자가 있는 경우: 첫 번째 문자열에서 일치한 문자의 위치(포인터)를 반환합니다.
  • 일치하는 문자가 없는 경우: NULL을 반환합니다.

함수 구문

strpbrk() 함수의 기본 구문은 다음과 같습니다. 이 함수는 <string.h> 헤더 파일에 선언되어 있습니다.

char *strpbrk(const char *string1, const char *string2)

매개변수 설명

  • string1: 검색 대상이 되는 원본 문자열입니다.
  • string2: 찾고자 하는 문자들의 집합(검색 키워드)입니다.

예제 코드

다음은 strpbrk() 함수를 활용한 간단한 예제입니다.

#include <stdio.h>
#include <string.h>
int main () {
    const char s1[] = "Helloworld";
    const char s2[] = "Blank";
    char *result;
    result = strpbrk(s1, s2);
    printf("The matching character : %c\n", *result);
    return(0);
}

실행 결과

The matching character : l

동작 원리 분석

위 예제에서 문자열 s1은 "Helloworld", s2는 "Blank"입니다. strpbrk() 함수는 "Helloworld"를 왼쪽부터 차례대로 검사하며, "Blank"를 구성하는 문자(B, l, a, n, k)와 일치하는 첫 번째 문자를 찾습니다.

  • 'H' → "Blank"에 없음
  • 'e' → "Blank"에 없음
  • 'l' → "Blank"에 존재!

따라서 세 번째 문자인 'l'에서 일치가 발생하며, 해당 문자의 포인터가 반환됩니다. 역참조(*result)를 통해 'l'이 출력되는 것입니다.

정리

strpbrk() 함수는 특정 문자 집합이 문자열 내 어디에서 처음 등장하는지 확인할 때 유용하게 사용됩니다. 예를 들어 입력값 유효성 검사나 구분자(delimiter) 탐색 등의 용도로 활용할 수 있으며, 일치 여부만 판단하려면 반환값이 NULL인지 확인하면 됩니다.