39.2 문자열의 오른쪽 끝부터 문자로 검색하기

strchr 함수는 문자열의 처음부터 문자를 검색해서 반환하지만 strrchr함수는 문자열의 끝에서부터 문자를 검색하며 함수 이름은 문자열 오른쪽에서부터 문자를 찾아라(string (find from the right) character)에서 따왔습니다(string.h 헤더 파일에 선언되어 있습니다).

  • strrchr(대상문자열, 검색할문자);
    • char *strrchr(char * const _String, int const _Ch);
    • 문자열의 끝에서부터 역순으로 검색해서 문자를 찾았으면 해당 문자로 시작하는 문자열의 포인터를 반환, 문자가 없으면 NULL을 반환

string_find_from_the_right_character.c

#include <stdio.h>
#include <string.h>   // strrchr 함수가 선언된 헤더 파일

int main()
{
    char s1[30] = "A Garden Diary";    // 크기가 30인 char형 배열을 선언하고 문자열 할당

    char *ptr = strrchr(s1, 'a');      // 문자열 끝에서부터 'a'로 시작하는 문자열 검색. 포인터 반환

    printf("%s\n", ptr);   // ary

    return 0;
}

실행 결과

ary

char *ptr = strrchr(s1, 'a');와 같이 strrchr 함수에 문자열과 검색할 문자를 넣어주면 문자열 끝에서부터 검색하여 'a'로 시작하는 문자열의 포인터를 반환합니다. "A Garden Diary"라면 "ary"의 포인터를 반환합니다. 즉, 가장 마지막에 있는 문자열을 찾습니다.

그림 39‑3 strrchr 함수로 끝에서부터 문자 검색

물론 strrchr 함수도 대소문자를 구분합니다.