10820번: 문자열 분석

문제:

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

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

입력:

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

풀이:

코드:

#include <iostream>

using namespace std;

int main(){
	string s;
	//배열 값 0으로 초기화 
	int answer[4] = {};
	//입력을 못 받으면 프로그램 종료 
	while(getline(cin,s)){
		for(int i = 0; i < s.size(); i++){
			//소문자일 때 
			if(s[i] >= 'a' && s[i] <= 'z') answer[0]++;
			//대문자일 때 
			else if(s[i] >= 'A' && s[i] <= 'Z') answer[1]++;
			//숫자일 때 
			else if(s[i] >= '0' && s[i] <= '9') answer[2]++;
			//공백일 때 
			else if(s[i] == ' ') answer[3]++;
			else continue;
		}
		//출력 
		for(int i = 0; i < 4; i++){
			cout << answer[i] << " ";
			answer[i] = 0; //출력 후 0으로 초기화 
		}
	}
}