프로그래머스(Level1) - 문자열 다루기 기본
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
#include <iostream>
#include <string>
using namespace std;
bool solution(string s) {
bool answer = true;
if(s.length() == 4 || s.length() == 6){
for(int i=0;i<s.length();i++){
if(s[i] - '0' > 9)
answer = false;
}
}else{
answer = false;
}
return answer;
}
s[i] - '0'가 9보다 크면 해당 자리의 문자는 숫자가 아닌것을 알 수 있다. 9보다 큰 경우는 숫자가 아니라고 판단하여 answer를 false로 바꿔주면 된다. s[i] - '0'와 같이 자릿수가 숫자인지 아닌지 알려주는 isdigit함수가 있다.
- int isalnum (int c);
c가 10진수인지 대문자 또는 소문자인지 확인하는 함수이다. c가 숫자 또는 문자인 경우 0이 아닌 값(true), 아닌경우 0(false)을 반환한다.- int isalpha (int c);
c가 알파벳 문자인지 확인하는 함수이다. c가 알파벳 문자인 경우 0이 아닌 값(true), 아닌경우 0(false)을 반환한다.- int isdigit (int c);
c가 10진수인 경우 0이 아닌 값(true), 10진수가 아닌경우 0(false)을 반환한다.
#include <iostream>
#include <string>
using namespace std;
bool solution(string s) {
bool answer = true;
for(int i=0; i<s.size(); i++){
if(!isdigit(s[i]))
answer = false;
}
return s.size() == 4 || s.size() == 6 ? answer : false;
}