strrchr(3)

#include <string.h>

char *strrchr(const char *s, int c);

strchr(3)은 문자열 s의 끝에서부터 문자열의 앞쪽으로 문자 c를 처음 만난 곳의 문자열 pointer를 return합니다.

만약, 문자열 s에 문자 c가 포함되어 있지않는다면 NULL을 return 합니다.

 

문자 c는 int type이지만 하위 1바이트만 유효합니다.

 

 

파라미터

s
    - 문자 c가 포함되었는 지를 찾을 문자열
c
    - 찾으려는 문자
    - c는 int type이지만 (unsigned char)c 로 type casting한 것과 같이 하위 1바이트만 유효합니다.

 

RETURN

NULL 아님
    - 문자열 s의 뒤에서 부터 문자 c를 검색할 때에 처음으로 만난 곳의 pointer를 return 합니다.

NULL
    -  문자열 s에 문자 c가 포함되어 있지 않습니다.

 


활용 예제

 

Sample - 파일의 확장자를 얻는 예제

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

char *get_file_ext(char *ext, int ext_size, const char *file_name)
{
    char *ptr;

    if((ptr = strrchr(file_name, '.')) == NULL) {
        *ext = 0x00;
    } else {
        ptr ++;
        strncpy(ext, ptr, ext_size);
    }
    return ext;
}

int main(int argc, char **argv)
{
    char filename[128] = "sample.txt";
    char file_ext[10];

    get_file_ext(file_ext, sizeof(file_ext), filename);

    printf("filename: %s\n", filename);
    printf("file_ext: %s\n", file_ext);

    return 0;
}

결과:
filename: sample.txt
file_ext: txt
블로그 이미지

자연&사람

행복한 개발자 programmer since 1995.

댓글을 달아 주세요