728x90
10820
10820번: 문자열 분석
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있
www.acmicpc.net
문제
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
입력
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.
출력
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
코드
//10820 문자열 분석
#include <iostream>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string s;
for (int j = 0; j < 100; j++) {
getline(cin, s, '\n');
if (s.size() == 0) {
break;
}
int a = 0, A = 0, num = 0, blank = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] >= 'a' && s[i] <= 'z') {
a++;
}
else if (s[i] >= 'A' && s[i] <= 'Z') {
A++;
}
else if (s[i] >= '0' && s[i] <= '9') {
num++;
}
else if (s[i] == ' ') {
blank++;
}
}
cout << a << " " << A << " " << num << " " << blank << "\n";
}
return 0;
}
설명
띄어쓰기를 함께 입력받을 수 있는 getline으로 문자열을 입력받는다.
문자가 소문자이면 a를 증가, 대문자이면 A를 증가, 숫자를 입력받으면 num을 증가, 빈칸을 입력받으면 blank를 증가시켜준다.
문자열을 입력받지 않으면 종료한다.
결과
고찰
띄어쓰기를 함께 입력받는 getline을 유용하게 쓸 줄 알아야 한다.
난이도
◐○○○○
728x90
'알고리즘 > 백준' 카테고리의 다른 글
알고리즘(C++) / 백준 1707 : 이분 그래프 (1) | 2021.04.27 |
---|---|
알고리즘(c++) / 백준 2743 : 단어 길이 재기 (0) | 2021.04.26 |
알고리즘(C++) / 백준 10809 : 알파벳 찾기 (0) | 2021.04.26 |
알고리즘(C++) / 백준 10808 : 알파벳 개수 (0) | 2021.04.26 |
알고리즘(C++) / 백준 10866 : 덱 (0) | 2021.04.26 |
댓글