본문 바로가기

백준/C++

[BaeKJoon/C++] 백준10820 c++ 문자열 분석

반응형

https://www.acmicpc.net/problem/10820

 

10820번: 문자열 분석

문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있

www.acmicpc.net

 

문제

문자열 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

 

반응형