언어 자료구조 알고리즘/C11 표준 라이브러리 함수

strrchr 함수 [C언어 표준 라이브러리 함수 가이드]

언제나휴일 2016. 1. 3. 15:26
반응형

strrchr


헤더 파일

[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - string.h


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


반응형