문자를 찾으면: 문자로 시작하는 문자열의 포인터를 반환
문자가 없으면: 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은 대소문자를 구분한다.
위의 strchr이랑 똑같지만 strrchr은 뒤에서부터 검색한다.
찾은 문자열의 첫 포인터를 반환(끝까지 출력됨)
실제로는 문자 검색보다 문자열 검색이 더 많이 쓰인다.
char s1[30] = "HelloWorld HelloWorld"
char *ptr = strstr(s1, "llo");
printf("%s\n", ptr);
>>> lloWorld HelloWorld
위의 strchr처럼 while문을 통해 더 탐색할 수 있다.