728x90
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12951
풀이
1. 공백까지 문자열을 받은 후
2. 맨 첫 번째 글자가 소문자인 경우에 대문자로 바꿔준다.
3. 나머지는 소문자로 바꿔주는데 여기서, 첫 문자가 알파벳이 아닐 경우에도 소문자로 바꿔줘야 한다는 점! 함정이야,,
tolower, toupper 함수도 있지만 아스키코드를 이용해서 +32, -32를 이용해서 구현했다.
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
string tmp="";
for(int i=0;i<s.size();i++){
tmp+=s[i];
if(s[i]==' '||i==s.size()-1){ //공백을 만났을 때, 맨 끝일 때
if(tmp[0]>='a'&&tmp[0]<='z'){ // 맨 첫번째 문자가 소문자인 경우
tmp[0] -=32; // 대문자 변환
}
for(int j=1;j<tmp.size();j++){
if(tmp[j]>='A'&&tmp[j]<='Z') // 대문자 -> 소문자변환
tmp[j]+=32;
} // for
answer += tmp;
tmp="";
} // if
} // for
return answer;
}
728x90
728x90
'Algorihtm > 프로그래머스' 카테고리의 다른 글
C++ 프로그래머스 카펫 (0) | 2023.11.16 |
---|---|
C++ 프로그래머스 네트워크 (1) | 2023.11.14 |
C++ 프로그래머스 타겟 넘버 (0) | 2023.11.13 |
C++ 프로그래머스 구명보트 (0) | 2023.11.01 |
C++ 프로그래머스 정수삼각형 (0) | 2023.10.30 |