C 언어 문자열 검색 strchr, strrchr사용법

문자열 char*, char[] 타입에서 검색 문자를 지정해 검색하는 방법을 알아보겠습니다.

문자 검색을 하기 위해서는 strchr 함수를 사용합니다.

 

사용법

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

 

strchr() 함수는 문자열 s에서 첫 번째로 찾은 문자 c의 포인터를 리턴합니다.
strrchr() 함수는 문자열 s에서 마지막으로 있는 문자 c의 포인터를 리턴합니다.

검색 문자를 찾지 못했다면 NULL을 반환합니다.

 

strchr() 함수와 strrchr() 함수 차이는 다음과 같습니다.

strchr() 함수는 s 문자열 처음부터 시작해 c와 같은 문자를 찾을 때까지 루프를 돕니다.

c와 같은 문자를 찾으면 s 포인터의 위치를 리턴합니다.

strrchr() 함수는 s 문자열 처음부터 c와 같은 문자를 찾을 때까지 루프를 돕니다.

c와 같은 문자를 찾으면 현재 s 포인터의 위치를 strrchr() 함수 내부에서 임시로 저장해놓고 계속 루프를 돕니다.

또 c 와 같은 문자를 찾으면 다시 임시로 저장합니다.

s 문자열의 끝까지 루프를 다 돌았으면 마지막으로 찾은 c 문자의 위치인 임시로 저장한 값을 리턴합니다.

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

int main()
{
	char dest[] = "abcdefgabcd";
    char *first;
    char *last;

	/* dest 문자열에서 첫번째 나오는 'b'문자를 찾습니다. */
	first = strchr(dest, 'b');

	/* dest 문자열에서 마지막 나오는 'b'문자를 찾습니다. */
	last = strrchr(dest, 'b');
	
	printf("first : %s \n", first);
	printf("last : %s", last);
    
	return 0;
}

 

결과

first : bcdefgabcd 
last : bcd

 

strchr() 함수 결과는 처음 검색 문자를 찾은 부분부터 마지막 문자열까지 출력하고 있습니다.

strrchr() 함수는 검색 문자를 마지막으로 찾은 부분부터 마지막 문자열까지 출력하고 있습니다. 

댓글