(cpp) Baekjoon 1152번 문제 ‘단어의 개수’ - 구현,문자열
풀이
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
char a[1000001]; //문자열의 길이는 1,000,000을 넘지 않음.
int main() {
scanf("%[^\n]s", a); //줄 바꿀때까지 문자열 입력받기.(띄어쓰기포함)
int ans = 0;
if (a[0] != ' ') { ans = ans + 1; } //문자열 처음에 단어가 바로 등장하면 +1
for (int i = 0; i < strlen(a); i++) {
if (a[i] == ' ' && a[i + 1] != ' ') { ans = ans + 1; } //그 다음부터 '공백+문자'인 경우 ans+1
}
if (a[strlen(a)-1] == ' '){ans = ans - 1;} //마지막이 '공백'으로 끝나면 ans-1
printf("%d", ans);
return 0;
}
아래는 getline사용하여 string입력 받는 코드
#define _CRT_SECURE_NO_WARNINGS
#include<string>
#include<iostream>
using namespace std;
string a; //문자열의 길이는 1,000,000을 넘지 않음.
int main() {
getline(cin, a);//줄 바꿀때까지 문자열 입력받기.(띄어쓰기포함)
int ans = 0;
if (a[0] != ' ') { ans = ans + 1; } //문자열 처음에 단어가 바로 등장하면 +1
for (int i = 0; i < a.length(); i++) {
if (a[i] == ' ' && a[i + 1] != ' ') { ans = ans + 1; } //그 다음부터 '공백+문자'인 경우 ans+1
}
if (a[a.length() - 1] == ' ') { ans = ans - 1; } //마지막이 '공백'으로 끝나면 ans-1
cout << ans;
return 0;
}