[BOJ]10820 문자열 분석

문자열 처리 예제

Posted by kyoungIn on December 14, 2018

문자열 분석

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 6924 2842 2362 42.985%

문제

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

각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.

입력

첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.

출력

첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.

예제 입력 1

1
2
3
4
This is String
SPACE    1    SPACE
 S a M p L e I n P u T     
0L1A2S3T4L5I6N7E8

예제 출력 1

1
2
3
4
10 2 0 2
0 10 1 8
5 6 0 16
0 8 9 0

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include<string> // getline 함수 라이브러리

using namespace std;
int main(){
    int i,temp;  //소문자, 대문자, 숫자, 공백
    string str;
    while(getline(cin,str)){
        int arr[4]={0,};

    for(i=0;i<(int)str.size();i++){
        temp = (int)str[i];
        if(temp == ' ') { //공백
            arr[3]++;
        }
        else if(temp>='0' && temp<='9'){ //숫자
            arr[2]++;

        }
        else if(temp>='A' && temp<='Z'){ //대문자
            arr[1]++;
        }
        else if(temp>='a' && temp<='z'){ //소문자
            arr[0]++;
        }
        else{}
    }
    
    for(i =0;i<4;i++)
        cout << arr[i]<< ' ';
    cout << "\n";
    }
}