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