[Programmers 알고리즘, C++]#Level 2_JadenCase 문자열 만들기
Programmers 알고리즘 문제 풀이, Level 2_JadenCase 문자열 만들기
cctype 제공 함수를 활용하여 풀이하는 문제입니다.
문제
풀이
/*
* #include <cctype> 제공 함수 주의할 점
: islower(), isdigit(), isupper() 등의 함수는 반환 값이 int입니다.
if(islower(str[i]) == true)는 정상적으로 수행되지 않습니다!
*/
#include <string>
#include <vector>
#include <cctype>
using namespace std;
string solution(string s)
{
string answer = "";
bool changeCheck = true;
if (isdigit(s[0]))
{
answer += s[0];
}
else
{
answer += toupper(s[0]);
}
changeCheck = false;
for (int i = 1; i < s.size(); i++)
{
// 1. 공백
if (s[i] == ' ')
{
changeCheck = true;
answer += s[i];
continue;
}
else if (s[i] >= '0' && s[i] <= '9')
{
changeCheck = false;
answer += s[i];
}
else
{
if (changeCheck == true)
{
answer += toupper(s[i]);
}
else
{
answer += tolower(s[i]);
}
changeCheck = false;
}
}
return answer;
}
1. cctype 제공 함수
소문자 혹은 대문자 여부를 체크하는 "islower()" 등의 함수는 반환 값이 이상하게도 "boolean"형이 아니라 "int"형으로 나와있습니다. 따라서, "if(islower(str[i]) == true)" 등의 문법은 제대로 작동하지 않습니다!
'문제 풀이 > Programmers 문제 풀이' 카테고리의 다른 글
[Programmers 알고리즘, C++]#Level2_다음 큰 숫자, bitset, 이진법 변환, cmath 헤더 파일 (0) | 2022.10.26 |
---|---|
[Programmers 알고리즘, C++]#Level2_이진 변환 반복하기 (0) | 2022.09.25 |
[Programmers 알고리즘, C++]#Level1_정수 내림차순 정렬 (1) | 2022.09.25 |
[Programmers 알고리즘, C++]#Level2_오픈 채팅방 (0) | 2022.08.14 |
[Programmers 알고리즘, C++]#Level2_문자열 압축 (0) | 2022.08.14 |