본문 바로가기

Baekjoon/C++

[C++][BOJ/백준] 4458 첫 글자를 대문자로

 

 

Baekjoon Online Judge

 

4458번: 첫 글자를 대문자로

첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다.

www.acmicpc.net

 

 

[문제]

문장을 읽은 뒤, 줄의 첫 글자를 대문자로 바꾸는 프로그램을 작성하시오.

 

 

[입력]

첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다.

 

 

[출력]

각 줄의 첫글자를 대문자로 바꾼뒤 출력한다.

 

 


 

[코드]

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int N;
    string s;

    cin >> N;
    cin.ignore();

    for (int i = 0; i < N; i++)
    {
        getline(cin, s);

        if ((int)s[0] >= 97)
            s[0] -= 32;

        cout << s << '\n';
    }

    return 0;
}

공백이 포함된 문자열을 입력받을 때는 getline()을 사용한다.

만약 getline()을 사용하기 전에 cin을 사용했다면 cin.ignore()를 통해 버퍼를 비워주어야 한다.