이번에는 strtok() 함수로 해결합니다!
먼저 strtok() 함수는 어떤 기준에 따라 문자열을 잘라낼 수 있는 함수입니다!
strtok()을 사용하기 위한 헤더 파일은 다음과 같습니다.
첫째, 문자열을 char*로 받아 하나씩 잘라내어 문자열에 대한 포인터를 반환하는 함수입니다!
strtok(“문자열”, “구분 기호”) 형식
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int num = 0;
char str(10000);
gets_s(str);//scanf의 문자열 버전
char* word = strtok(str, " ");//띄어쓰기로 구분하고 단어를 저장
while (word !
= NULL) {
num++;
word = strtok(NULL, " ");//다음 단어을 얻기 위해 NULL을 인수로 줌
}
cout << num<<endl;
return 0;
}
아, 그리고 gets_s() 함수는 원래 get() 함수인데 조금 더 개선했습니다!
다만, gets()함수는 문제점이 많기 때문에 사용하지 않는 것을 권장합니다.
.!