https://www.acmicpc.net/problem/2386
2386번: 도비의 영어 공부
출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.
www.acmicpc.net
🔔 문제 :
입력은 몇 개의 줄들로 이루어집니다.
각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어집니다.
각 문장은 길이가 1에서 250이며 입력의 마지막은 #입니다.
출력상에서 각 줄 앞의 소문자가 뒤의 문장에 몇 번 나온지를 출력하는 문제입니다.
🔔 Kick Point :
대문자 소문자 상관 없이 확인해야하는 문제이기에
tolower() 함수를 사용 하였습니다.
int tolower(int c);
아마도 입력값으로 숫자가 들어가 변환시켜줍니다.
찾아보니 각 대문자와 소문자의 사이에는 32의 정수차이가 있기 때문에 쉽게 치환해주는 것 같습니다.
A = 65 , a = 97
🔔 Code :
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
char c;
while (true) {
cin >> c;
getline(cin, str);
if (c == '#') break;
int cnt = 0;
for (int i = 0; i < str.length(); i++) {
str[i] = tolower(str[i]);
if (str[i] == c) ++cnt;
}
cout << c << " " << cnt << '\n';
}
}