반응형
https://www.acmicpc.net/problem/10820
문제
문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
풀이
isdigit : 숫자인지 판별
isspace : 공백인지 판별
isupper : 대문자인지 판별
islower : 소문자인지 판별
isalpha : 알파벳인지 판별
각 함수들을 사용하면 해당 문자가 어떠한 것인지 판별해낼 수 있다.
코드
#include <iostream>
#include <string>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string s;
for(int i=0; i<100; i++){
int a=0, b=0, c=0, d=0;
getline(cin, s);
if(s.size() == 0)
break;
for(int i=0; i<s.size(); i++){
if(islower(s[i])) //입력받은 문자가 소문자면 a에 카운트
a++;
else if(isupper(s[i])) //입력받은 문자가 대문자면 b에 카운트
b++;
else if(isdigit(s[i])) //입력받은 문자가 숫자면 c에 카운트
c++;
else if(isspace(s[i])) //입력받은 문자가 공백이면 d에 카운트
d++;
}
cout<<a<<" "<<b<<" "<<c<<" "<<d<<"\n";
}
return 0;
}
|
cs |
반응형
'백준 > C++' 카테고리의 다른 글
[BaeKJoon/C++] 백준5524 c++ 입실 관리 (0) | 2021.06.30 |
---|---|
[BaeKJoon/C++] 백준4504 c++ 배수 찾기 (0) | 2021.06.30 |
[BaeKJoon/C++] 백준2702 c++ 초6 수학 (0) | 2021.06.30 |
[BaeKJoon/C++] 백준5596 c++ 시험점수 (0) | 2021.06.29 |
[BaeKJoon/C++] 백준 5576 c++ 콘테스트 (0) | 2021.06.27 |