https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한
www.acmicpc.net
#include <iostream>
#include <string>
using namespace std;
int main(void){
string s;
getline(cin, s);
int count = 0;
for(int i = 0; i<s.length(); i++){
//cout << s[i];
if(s[i] != ' '){
count++;
}
while(s[i]!=' ' && i<s.length()){
i++;
}
}
cout << count << endl;
}
주어진 문장을 하나의 스트링으로 받기 위해 getline()을 이용했다.
단어의 갯수를 저장하는 count 변수가 있다.
만약 공백이 나타나면 단어의 끝이니까 count를 하나 증가시킨다.
그냥 문자이면 계속 포인터를 옮기면서 넘긴다.
'컴퓨터기본 > 문제풀이' 카테고리의 다른 글
[백준] 4949번: 균형잡힌 세상 (0) | 2021.08.08 |
---|---|
[백준] 9012번: 괄호 (0) | 2021.08.07 |
[백준] 1157: 단어 공부 (0) | 2021.06.27 |
[백준] 2675번: 문자열 반복 (0) | 2021.06.27 |
[백준] 2164번: 카드2 (0) | 2021.06.24 |