【 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
'Language > C & C++' 카테고리의 다른 글
【 C 언어 】 #61 문자열을 특정문자로 채워넣기 strset()함수사용 (0) | 2018.07.23 |
---|---|
【 C 언어 】 #60 문자열을 구분하기 [strtok()함수사용] (0) | 2018.07.02 |
【 C 언어 】 #58 문자열 검색하기 ( strstr 함수 사용하기) (0) | 2018.06.12 |
【 C 언어 】#57 strlen()함수를 이용하여 문자열 길이 구하기 (0) | 2018.06.01 |
【 C 언어 】 #56 문자열 연결 함수 strcat() 사용하기 (0) | 2018.05.31 |