본문 바로가기

Algorithm/Programers - C++

[프로그래머스] JadenCase 문자열 만들기 / isspace

Level.2

 

문제

 

풀이

#include <string>
#include <vector>
#include <cctype> // isspace

using namespace std;

string solution(string s) {
    string answer = s;
    answer[0] = toupper(answer[0]);
    
    for(int i=1; i<answer.size(); i++){
        if(isspace(answer[i-1])){
            answer[i] = toupper(answer[i]);
        }
        else {
            answer[i] = tolower(answer[i]);
        }
    }
    
    return answer;
}

 

 반복문을 돌며 모든 문자열을 소문자로 변환하되, 바로 이전 문자가 공백일 경우 현재 문자를 대문자로 변환한다.

 

공백판단 - isspace

int isspace(int c);
  • 매개변수 : 공백을 판단하고자 하는 값
  • 반환값 : 공백일 경우 0, 공백이 아닐경우 0이아닌값을 반환
  • 공백 판단값
    •     : 공백(스페이스)
    • \n : 개행
    • \t : 수평탭
    • \v : 수직탭
    • \f : 피드
    • \r : 캐리지 리턴

 

 

 


 

다른 사람 풀이

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";

    answer += toupper(s[0]);
    for (int i = 1; i < s.size(); i++)
        s[i - 1] == ' ' ? answer += toupper(s[i]) : answer += tolower(s[i]);

    return answer;
}

삼항연산자를 사용하여 코드가 더 간결해졌다. 

 

 

 


https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

https://blockdmask.tistory.com/449

 

[C언어/C++] isspace 함수 (공백, 탭, 개행을 확인하는 함수)

안녕하세요. BlockDMask 입니다. 오늘은 C언어, C++에서 해당 문자가 공백문자인지 확인하는 함수 isspace라는 함수를 가지고왔습니다. 저도 써본적은 없던것 같은데, 한번 이번 기회에 어떻게 사용하

blockdmask.tistory.com