[백준 BOJ] 4458번 첫 글자를 대문자로 (C++/cpp)
2022. 2. 1. 16:40ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/4458
접근 방법 - 문자열을 이용한 기본 연산 문제
백준의 4458번 문제는 문자열을 주로 다루어 해결해야 하는 문제이다.
해당 문제에선 각 테스트 케이스의 문자열의 첫 글자가 소문자일 시 대문자로 변경해야 한다.
예제 입력을 보다시피, 이 문제에선 숫자랑 문자열을 함께 입력받는데 cpp의 경우엔 이 점을 주의해야 한다.
string 헤더를 사용하여 함께 입력을 받으면 입력받는 데에 차질이 생기기 때문이다.
이러한 경우엔 cin.ignore()문을 이용하여 입력의 오류를 없애야 한다. 사용방법은 아래에서 설명하고자 한다.
필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.
코드의 실행 순서
1) 테스트 케이스 수(n)를 입력받는다.
2) cin.ignore()을 사용하여 버퍼를 비운다.
(이 구문을 사용하지 않을 시 1) 입력 다음의 "공백"이 3) 입력에서 받아질 수 있다.)
3) 문자열을 한 줄씩 입력받는다.
4) 문자열의 첫 글자가 소문자일 시, 아스키코드 연산을 통하여 대문자로 변경한다.
5) 변경이 완료되면, 해당 문자열을 출력한다.
6) 3) ~ 5)를 통해 모든 테스트 케이스가 수행되면, 실행 종료한다.
반응형
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#include <string>;
using namespace std;
//백준 4458번 코드
int main() {
int n;
cin >> n;
cin.ignore();
string ch;
for (int i = 0; i < n; i++) {
getline(cin, ch);
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] -= 32;
}
cout << ch << endl;
}
}
제출 결과
(2022.01.08 백준 4458번 문제 제출 결과)
반응형
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 5596번 시험 점수 (C++/cpp) (0) | 2022.02.01 |
---|---|
[백준 BOJ] 5338번 마이크로소프트 로고 (C++/cpp) (0) | 2022.02.01 |
[백준 BOJ] 4153번 직각삼각형 (C++/cpp) (0) | 2022.02.01 |
[백준 BOJ] 3052번 나머지 (C언어) (0) | 2022.01.30 |
[백준 BOJ] 2920번 음계 (C언어) (0) | 2022.01.30 |