Programming/ACMICPC
ACMICPC 10820 문자열 분석
Lazy Ren
2017. 1. 8. 20:48
문제
문자열 N개가 주어진다. 이 때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오.
각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다.
입력
첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다.
출력
첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다.
이처럼 입력이 언제 끝나는지 모르는 문제들은 입력의 마지막에 EOF을 입력한다. 이를 유의하면서 입력을 받아야한다.
또한 공백에 관계없이 한 줄씩 입력을 받아야하므로 scanf는 좋은 선택이 아니다. getchar()을 사용하는 편이 좋다.
<ctype.h> 헤더에서 islower(), isupper(), isdigit() 함수를 사용하거나 직접 c의 아스키코드 값을 판별해주어도 됀다.
** isspace()를 사용하지 않는 이유는 isspace()는 모든 공백문자를 찾아내기 때문에 개행문자('\n')또한 공백 취급해 버려서
원하는 값이 나오질 않는다.