모두의 코드
C 언어 레퍼런스 - strrchr 함수
작성일 : 2010-08-02
이 글은 19283 번 읽혔습니다.
아직 C 언어와 친숙하지 않다면, 씹어먹는 C 언어 강좌를 보는 것이 어떻까요?
strrchr
#include <string.h> // C++ 에서는 <cstring> const char* strrchr(const char* str, int character); char* strrchr(char* str, int character);
문자열에서 문자를 검색하되 가장 마지막으로 나타나는 위치를 찾는다. 그리고 이를 가리키는 포인터를 리턴한다. 이 때 문자열의 널 종료 문자 역시 C 문자열의 일부분이라 생각한다. 따라서 이 함수는 문자열의 널 종료 문자를 가리키는데 사용될 수 도 있다.
C++ 에서는 함수 오버로딩이 가능하므로 위와 같이 두 개의 원형을 가져도 되지만 C 에서는 불가능 하므로 아래와 같은 하나의 원형만을 가진다 C++ 에서는 함수 오버로딩이 가능하므로 위와 같이 두 개의 원형을 가져도 되지만 C 에서는 불가능 하므로 아래와 같은 하나의 원형만을 가진다.
char *strrchr(const char *, int);
인자
C 문자 C 문자열
character
str 에서 찾을 문자로 int
로 전달되지만 함수 내부적으로는 다시 char
로 변환되어 처리된다.
리턴값
str 에서 찾은 문자의 위치를 리턴한다. 만일 찾지 못한다면 널을 리턴한다.
함수의 구현
/* 이 소스는 http://www.jbox.dk/sanos/source/lib/string.c.html 에서 가져왔습니다. */ char *strrchr(const char *s, int ch) { char *start = (char *)s; while (*s++) ; while (--s != start && *s != (char)ch) ; if (*s == (char)ch) return (char *)s; return NULL; }
실행 예제
/* strrchr 함수를 통해 str 에서 s 가 포함된 가장 오른쪽 위치를 찾는다. 이 예제는 http://www.cplusplus.com/reference/clibrary/cstring/strrchr/ 에서 가져왔습니다. */ #include <stdio.h> #include <string.h> int main() { char str[] = "This is a sample string"; char* pch; pch = strrchr(str, 's'); printf("Last occurence of 's' found at %d \n", pch - str + 1); return 0; }
실행 결과
참고 자료
strchr : 특정한 문자가 포함되어 있는 가장 왼쪽 위치를 찾는다.
memchr : 메모리에서 특정한 문자를 찾는다.
strpbrk : 다른 문자들의 문자를 검색어로 삼아 특정한 문자열의 문자들을 찾는다.
첫
댓글을 달아주세요!
강좌에 관련 없이 궁금한 내용은
여기를 사용해주세요
또는 직접 입력하세요 (댓글 수정시 비밀번호가 필요합니다)
댓글을 불러오는 중입니다..