반응형

【 C 언어 】 #59 문자열 중에서 특정문자만 검색하기 ( strchr 함수 사용하기)

 

 strchr() 함수를 사용하면 입력받은 문자열 중에 특정 문자 하나가 있는지 검색할 수 있다. 



▶ 문제1  : 영어 문장(문자열)을 입력받고 문자열 중에서 'u' 라는 문자가 있는지 검색하여 있으면 찾았다는 문장을 출력하고, 없으면 없다는 메세지를 출력하라. 'u' 문자의 위치값도 표시하라


▶ 실행 결과 :

(이미지 클릭, 확대해서 보세요)



▶ 포인트 


- strchr() 함수 원형 :  char* strchr(const char* string, int c);


- 함수 사용을 위해 strstr() 함수가 포함 되어 있는 <string.h > 헤더파일을 선언하라.


▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


▶ 프로그램 설명 : 

- strstr() 함수는 문자열 뿐 아니라 단일 문자도 검색이 가능하다

- char *ret   :  strchr()함수가 반환하는 문자형 포인터 값을 저장할 변수를 정의한다. 

- 문자열을 배열 변수 string[100]에 입력받는다. 

- #define FIND_CHR 'u'   :   u 를 대체하여 FIND_CHR로 선언한다

- ret = strchr(string, FIND_CHR   :  입력받은 문자열 중에 'u' 가 있는지 검색하여 찾으면 그 위치의 메로리(번지) 값을 반환(저장) 한다.  없으면 NULL포인터를 반환


- printf("%d 위치에서...., ret-string+1)     :  문자열 중에서 'u'값이 검색된 경우, 그 위치의 메모리 값(번지)에서 문자열 배열 변수 string의 메모리 값(번지)를 빼면 'u'문자의 위치 값을 얻을 수 있다. 단, ...0 번지의 경우 계산이 되지 않기에 정확한 순서값을 얻기 위해 +1을 더해 준다.


- 프로그램에서 처럼 변수 'ret' 와 'string'의 메모리 값(번지)을 출력 해보면 좀더 명확히 이해 될 것이다.   


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


▶ 소스코드 다운로드 :  


59 문자열 검색하기 strchr() 함수 사용하기.exe



반응형