본문 바로가기

백준/C++

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

반응형

https://www.acmicpc.net/problem/4458

 

4458번: 첫 글자를 대문자로

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

www.acmicpc.net

문제

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

입력

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

출력

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

예제 입력  예제 출력

 

풀이

문자열의 가장 왼쪽에 있는 글자만 대문자로 바꾸는 문제이다.
처음에 이 문제를 보고 문자열에 각 단어의 앞글자를 다 대문자로 바꾸는 줄 알았다.
그래서 정답비율이 49퍼센트 구나 생각하고 있었다....

코드

#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
 
    int test;
    cin>>test;
 
    string str;
    cin.ignore();
 
    for(int i=0; i<test; i++){
    getline(cin, str);
 
    for(int i=0; i<str.length(); i++){
        str[0]=toupper(str[0]); // keypoint
        cout<<str[i];
    }
    cout<<"\n";
    }
    return 0;
}
cs

 

toupper(n) : 소문자를 대문자로 바꾸는 것 n->N
isupper(n) : n이라는 문자가 대문자인지 검사하는 것
 

 

 

 

반응형