문제 URL
https://school.programmers.co.kr/learn/courses/30/lessons/12951
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
위 문제는 문자열이 주어졌을 때 첫 문자를 대문자로 만드는 문제로 조건을 주어 toupper() 함수를 사용하면 되었다.
구글링을 한 부분은 알파벳 소문자를 대문자로 만들어주는 toupper() 함수의 함수명을 기억하지 못해서 찾아보았다.
또, 처음에는 s[i] - 'a' >= 0 && s[i] - 'a' < 26과 같은 조건을 주어 대문자, 소문자, 숫자를 구분하려고 했는데 toupper() 함수와 tolower() 함수를 사용하면 각각 소문자만 대문자로, 대문자만 소문자로 바꾸어주기 때문에 구분할 필요는 없었다.
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
answer += toupper(s[0]);
for(int i=1; i<s.length(); i++) {
// 굳이 소문자인지 체크할 필요x. 그냥 전부 toupper 함수 사용
if(s[i-1] == ' ') { // 공백 작은 따옴표로(큰 따옴표x)
answer += toupper(s[i]); // 대문자로 만들어주는 함수
}
else {
answer += tolower(s[i]);
}
}
return answer;
}