
📌 매뉴얼 (Linux)
NAME
strrchr - locate character in string
: 문자열에서 문자를 찾기
SYNOPSIS
#include <string.h>
char *strrchr(const char *s, int c);
DESCRIPTION
The strrchr() function returns a pointer to the last occurrence of the character c in the
string s.
Here "character" means "byte"; these functions do not work with wide or multibyte characters.
: strrrchr() 함수는 문자열에서 문자 c의 마지막 발생에 대한 포인터를 반환한다.
여기서 문자(character)는 바이트(byte)를 의미한다.
이러한 기능은 넓은 문자나 여러 바이트 문자에서는 작동하지 않는다.
RETURN VALUE
The strchr() and strrchr() functions return a pointer to the matched character or NULL if the
character is not found. The terminating null byte is considered part of the string, so that
if c is specified as '\0', these functions return a pointer to the terminator.
: strchr() 및 strrchr() 함수는 문자가 발견되지 않으면 일치하는 문자 또는 NULL로 포인터를 반환한다. 마지막 NULL 바이트는 문자열의 일부로 간주되므로 c가 '\0'으로 지정되면 이 함수는 종결 부분으로 포인터를 반환한다.
📌 작성 코드
char *do_strrchr(const char *s, int c)
{
size_t len;
len = do_strlen(s);
while (len != 0)
{
if (s[len] == c)
return ((char *)s + len);
len --;
}
if (s[len] == c)
return ((char *)s + len);
return (0);
}
📌 코드 리뷰
strrchr 은 strchr과 유사한 함수이며, 탐색하는 방향이 strchr의 반대로 동작한다.
문자열의 끝에서부터 탐색하기 위해, strlen 함수를 가져와 len을 구하고, 해당 len 만큼 반복을 돌기 위해,
반복문 내에서 len을 --로 줄여 0까지 반복하게 한다.
끝에서 부터 문자를 c와 비교해 동일한지 판별하고, 같으면 그 주소를 반환하기 위해 문자열s의 첫 주소에
인덱스인 len을 더해 반환하게 된다.
반복문이 종료되면, len이 0이 되고, 그 부분까지 따로 판별해주는 과정까지 거치면 된다.
그 외의 다른 요소들은 strchr과 동일하다.
'프로그래밍 > C' 카테고리의 다른 글
[library] strnstr 구현하기 (0) | 2024.05.10 |
---|---|
[library] strncmp 구현하기 (0) | 2024.05.10 |
[study] 가변인자 (variable argument) (0) | 2024.04.03 |
[library] strchr 구현하기 (0) | 2024.03.30 |
[library] strlcat 구현하기 (2) | 2024.03.19 |