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

C/C++ strchr() 함수 완벽 가이드 – 문자열에서 문자 검색하기

C/C++ strchr() 함수란?

strchr() 함수는 문자열 내에서 특정 문자를 검색할 때 사용되는 C 표준 라이브러리 함수입니다. 이 함수는 두 번째 인자로 전달된 문자가 문자열에서 처음으로 나타나는 위치를 찾으며, 검색에 성공하면 해당 문자를 가리키는 포인터를 반환하고, 찾지 못한 경우 NULL을 반환합니다.

strchr() 함수는 <string.h> 헤더 파일에 선언되어 있으며, 문자열 처리 시 자주 활용되는 기본 함수 중 하나입니다.

strchr() 함수 문법

char *strchr(const char *string, int character);

각 매개변수의 의미는 다음과 같습니다.

  • string − 검색 대상이 되는 문자열입니다.
  • character − 문자열 안에서 찾고자 하는 문자입니다.

반환값은 다음과 같습니다.

  • 성공 시: 문자열에서 해당 문자가 처음 발견된 위치의 포인터
  • 실패 시: NULL 포인터

strchr() 함수 예제

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

int main() {
    char s[] = "Helloworld!";
    char c = 'o';
    char *result = strchr(s, c);
    printf("문자 검색 후 문자열 : %s", result);
    return 0;
}

실행 결과

문자 검색 후 문자열 : oworld!

예제 코드 설명

위 프로그램에서는 char형 문자열 s와 검색할 문자 c('o')를 정의한 뒤, strchr() 함수를 호출하여 문자열에서 'o'가 처음 나타나는 위치를 찾습니다. 검색 결과는 포인터 변수 *result에 저장됩니다.

char s[] = "Helloworld!";
char c = 'o';
char *result = strchr(s, c);

문자열 "Helloworld!"에서 'o'는 인덱스 4, 즉 다섯 번째 문자에서 처음 등장합니다. 따라서 result는 해당 위치부터 시작하는 부분 문자열 "oworld!"를 가리키며, printf()로 출력하면 "oworld!"가 화면에 표시됩니다.

사용 시 주의 사항

  • strchr() 함수는 문자열 끝의 널 문자('\0')도 검색 대상에 포함합니다. 즉, strchr(s, '\0')을 호출하면 문자열의 끝을 가리키는 포인터가 반환됩니다.
  • 반환된 포인터를 사용하기 전에는 반드시 NULL 여부를 확인해야 합니다. NULL 검사를 생략하면 널 포인터 역참조로 인해 프로그램이 비정상 종료될 수 있습니다.
  • strchr()는 대소문자를 구분하므로, 대소문자를 구분하지 않고 검색하려면 문자열을 미리 변환하거나 별도의 로직을 구현해야 합니다.