c 문자열 검색하기

떵떵·2022년 6월 24일
0

문자열에서 문자 탐색

strchr(대상 문자열, 검색할 문자);

문자를 찾으면: 문자로 시작하는 문자열의 포인터를 반환
문자가 없으면: NULL 반환

char s1[30] = "Hello World";
char *ptr = strchr(s1, 'o');
// strchr() 1회에 문자열 전체를 검색한다.
// 해당 문자의 포인터를 *ptr에 저장한다.

while (ptr != NULL) // 문자열에 탐색할 문자가 더 있는지 보기 위해
ptr이 NULL이 될때까지 실행한다.
{
	printf("%s\n", ptr); // ptr에 저장된 포인터부터의 문자열을 출력한다.
    ptr = strchr(ptr + 1, 'o'); // 'ptr'만 넣으면 찾았던 포인터에 머무르기 때문에 
    // 그 이후의 문자를 찾기 위해서 +1을 해준다.
}

>>> o World
>>> orld

주의

strchr은 대소문자를 구분한다.

문자열에서 문자탐색 끝에서부터

strrchr(대상문자열, 검색할문자);

위의 strchr이랑 똑같지만 strrchr은 뒤에서부터 검색한다.

문자열에서 문자열 검색하기

strstr(대상문자열, 검색할문자열);

찾은 문자열의 첫 포인터를 반환(끝까지 출력됨)

실제로는 문자 검색보다 문자열 검색이 더 많이 쓰인다.

char s1[30] = "HelloWorld HelloWorld"
char *ptr = strstr(s1, "llo");

printf("%s\n", ptr);

>>> lloWorld HelloWorld

위의 strchr처럼 while문을 통해 더 탐색할 수 있다.

0개의 댓글