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



참고

https://kamang-it.tistory.com/entry/cstring%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9D%B4%EC%95%BC%EA%B8%B0-2-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84-%ED%8A%B9%EC%A0%95-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EC%9E%90%EB%A5%B4%EA%B8%B0-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%86%A0%ED%81%AC%EB%82%98%EC%9D%B4%EC%A7%95

'<백준> > |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

+ Recent posts