Visual Studio/C 기초

C언어 strchr()

낙락장송s 2013. 6. 25. 16:44

 

strchr() 함수는 문자열 내에서 처음으로 나타나는 지정된 문자를 찾습니다. 이 함수는 string.h 헤더 파일을 요구합니다.

strchr() 함수가 문자를 발견하면 문자에 대한 포인터를 돌려줍니다.

 예제를 보면서 설명을 하겠습니다.

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

main(){
 char *location, buf[80];
 int ch;

 printf("검색할 원본 문자열을 입력하세요 : ");
 gets(buf);

 printf("찾을 문자 하나를 입력하세요 : ");
 ch = getchar();

 location = strchr(buf, ch);
 if(location==NULL)
  printf("문자 %c를 찾는 데 실패했습니다.\n",ch);
 else
  printf("문자 %c를 %d번째 위치에서 찾았습니다.\n",ch,location-buf);
}

여기서 strchr() 함수는 문자 ch가 발견되거나 NULL 문자가 발견될 때 까지 buf 문장을 왼쪽에서 오른쪽으로 진행하며 검색합니다.

함수는 ch를 찾으면 ch에 대한 포인터를 돌려주고 그렇지 않을 경우 NULL을 돌려줍니다.

location-buf가 무엇이냐 궁금해 하실텐데 문자열에서 찾고자 하는 문자를 찾기 위해 함수가 돌려주는 값에서 문자열 포인터를 빼기 위해 location에서 buf 포인터 값을 뺀 것입니다.