728x90
string을 단어로 쪼개주는 함수가 따로 없었기에 고생을 좀 하였다.
조각을 내기 위해서 string을 char로 변환해주어야 했었다.
string을 char로 변환해주는 strcpy 함수와 단어를 조각내는 strtok 함수를 사용하기 위해 <cstring>을 활용하여보았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include<iostream> #include<cstring> int main() { std::string input; //띄어쓰기를 포함하기 위해 getline을 사용해 입력을 받자. getline (std::cin,input); //string은 단어를 나눠주는 기능이 없기에 char로 바꾸어주자. char *str_buff= new char[1000001]; strcpy(str_buff, input.c_str()); //단어를 " "이 나오면 조각낸다. char *word = strtok(str_buff," "); int count(0); //문자열 끝까지 조각을 내고, 조각의 수를 구하자. while(word !=nullptr) { count++; word = strtok(nullptr, " "); } std::cout<<count<<std::endl; } | cs |
더 빠른 방법이 있는지에 대해서는 더 생각해봐야 할 것 같다.
문제 링크
https://www.acmicpc.net/problem/1152
참고
'<백준> > |c++| easy' 카테고리의 다른 글
백준 2675 - 문자열 반복 (0) | 2019.02.16 |
---|---|
백준 10809 - 알파벳 찾기(ascii 변환) (0) | 2019.02.10 |
백준 2920 - 음계 (0) | 2019.02.10 |
백준 8958 - OX퀴즈 (0) | 2019.02.10 |
백준 2577 - 숫자의 개수(문자열 길이 반환) (0) | 2019.02.10 |