【 C 언어 】 #60 문자열을 구분하기 [strtok()함수사용]
strtok() 함수는 이전에 검색한 위치를 저장할 수 있기 때문에 공백을 인지해서 문장을 구분 짓는 코드를 작성해보자.
▶ 문제1 : 영어 문장(문자열)을 입력받고 공백으로 구분하여 화면에 출력하라.
▶ 실행 결과 :
(이미지 클릭, 확대해서 보세요)
▶ 포인트 :
- strtok() 함수 원형 : char* strtok(char* strToken, const char* strDelimit)
- 함수 사용을 위해 strtok() 함수가 포함 되어 있는 <string.h > 헤더파일을 선언하라.
▶ 프로그램 (답안 예시) :
(이미지 클릭, 확대해서 보세요)
▶ 프로그램 설명 :
- strtok() 함수는 내부적으로 이전에 검색한 위치를 저장하고 있다. 따라서 string이 아닌 NULL을 strtok()함수에 넘겨 주면, 검색된 다음 위치부터 자동으로 검색하게 된다.
- token = strtok(string,TOKEN); TOKEN을 " "(공백) 으로 define(정의) 했으므로 공백이 있는지 찾는다. 만약 공백을 찾은 경우, 공백이 있는 자리에 NULL값을 넣은 후 문자열의 선두 번지를 반환 한다. 만약 공백이 없는 경우, 문자 배열 변수 string의 선두 번지를 반환한다.
- while(token != NULL) 반환값이 NULL인지 비교한다. NULL이 아니면 token 값을 출력(pus)하고 NULL 이면 while문을 종료 한다.
- token = strtok(NULL, TOKEN); 앞의 코딩 문 token = strtok(string,TOKEN)에서 공백을 찾은, 다음 번지부터 다시 공백을 찾는데, 공백이 있을 경우 NULL값을 넣은 후 다음 문자열의 선두 번지를 반환한다.
- strtok() 함수는 이전에 검색한 위치를 저장하고 있기 때문에 string이 아닌 NULL 값을 strtok()함수에 넘겨주면, 검색된 다음 위치부터 자동으로 검색하게 된다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
▶ 소스코드 다운로드 :
60 문자열을 구분하기 strtok() 함수 사용하기.cpp
'Language > C & C++' 카테고리의 다른 글
【 C 언어 】#62 문자열의 일부분을 특수문자로 채워넣기 ( strnset()) (0) | 2018.08.06 |
---|---|
【 C 언어 】 #61 문자열을 특정문자로 채워넣기 strset()함수사용 (0) | 2018.07.23 |
【 C 언어 】 #59 문자열 중에서 특정문자만 검색하기 ( strchr 함수 사용하기) (4) | 2018.06.21 |
【 C 언어 】 #58 문자열 검색하기 ( strstr 함수 사용하기) (0) | 2018.06.12 |
【 C 언어 】#57 strlen()함수를 이용하여 문자열 길이 구하기 (0) | 2018.06.01 |