strrchr 함수

const char * strrchr ( const char * str, int ch ); 문자열에 특정 문자가 있는 위치를 뒤에서부터 찾는 함수

입력 매개 변수 리스트

str 문자열

ch 찾을 문자

반환 값

str 문자열의 뒷 부분에서 처음으로 ch 문자가 있는 위치, 없을 때 NULL

사용 예

//C언어 표준 라이브러리 함수 가이드
//const char * strrchr ( const char * str, int ch ); 문자열에 특정 문자가 있는 위치를 뒤에서부터 찾는 함수
//문자열에서 특정 문자가 있는 위치를 뒤에서부터 찾아 출력

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

const char *ehstrrchr(const char *str, int ch)
{
    int i;
    int len = strlen(str);//문자열 길이 계산

    for (i = len - 1; i >= 0; i--)//문자열의 뒤쪽에서 앞쪽으로 이동하면서 반복
    {
        if (str[i] == ch)//같은 문자를 찾았을 때(i>=0)
        {
            break;//반복문 탈출
        }
    }

    if (i>=0)//찾았을 때
    {
        return str+i;//찾은 위치 반환
    }
    return NULL;
}

int main (void)
{
    char str[100] = "12345abcde54321";    
    const char *cp;

    //strrchr 함수 이용
    printf("%s 뒤에서부터 %c을(를) 처음 발견한 위치\n",str,'5');
    cp = strrchr(str,'5');
   
    if(cp)
    {
        printf("%d번째 %s\n", cp - str + 1, cp);        
    }
    else
    {
        printf("없음\n");
    }

    //ehstrrchr 함수 이용
    printf("%s 뒤에서부터 %c을(를) 처음 발견한 위치\n", str, '3');
    cp = ehstrrchr(str, '3');
    if (cp)
    {
        printf("%d번째 %s\n", cp - str + 1,cp);        
    }
    else
    {
        printf("없음\n");
    }
    return 0;
}

출력

12345abcde54321 뒤에서부터 5(을)를 처음 발견한 위치
11번째 54321
12345abcde54321 뒤에서부터 3(을)를 처음 발견한 위치
13번째 321