C언어/string.h

[C언어] strrchr 함수 (문자열의 마지막부터 문자를 검색)

아무일도없었다 2023. 2. 24. 23:58

사용범위

Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수

기능

C언어 표준 함수로 특정 문자열의 마지막 위치부터 문자를 검색할 때 사용한다.

헤더

#include <string.h>

※ 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※


함수

char *strrchr(const char *str, int val);

파라미터

  • const char *str
    • 특정 문자를 검색할 문자열 버퍼를 입력한다.
  • int val
    • 문자열 버퍼의 마지막에서부터 검색할 문자를 입력한다.

반환값

문자(val) 을 찾은 경우                문자열에서 val의 마지막 위치의 포인터를 반환
문자(val) 을 찾지 못한 경우 시   NULL 을 반환

잡학지식

strrchr 함수는 검색하는 string 버퍼의 size를 입력받지 않는다.

다시 말해 strrchr 내부에서 문자열의 종료를 나타내는 NULL 문자를 확인하고 있는 것이다.

 

따라서 입력하는 str 파라미터는 반드시 NULL 문자가 ('\0') 포함되어야 한다.


 

<소스 코드>

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

int main() {
    char buffer[] = "strrchr example source code";
    char find_chr = 'x';
    char *ret = NULL;

    ret = strrchr(buffer, find_chr);
    if(ret) {
        printf("buffer(%p) ret(%p)\n", buffer, ret);
        
        printf("ret - buffer = %d\n", (int)(ret - buffer));
        
        printf("ret: [%s]\n", ret, ret);
    }

    return 0;
}

 

※ 실행 결과

buffer(000000000061FCB0) ret(000000000061FCB9)
ret - buffer = 9
ret: [xample source code]

 

반응형