▶ 문제
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
- 제한사항 -
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
▶ 소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <ctype.h> // 숫자 확인을 위해 추가
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
bool solution(const char* s) {
// 문자열 길이를 계산합니다.
int len = strlen(s);
// 문자열 길이가 4 또는 6이 아니라면 false를 반환합니다.
if (len != 4 && len != 6) {
return false;
}
// 문자열이 숫자로만 이루어졌는지 확인합니다.
for (int i = 0; i < len; i++) {
if (!isdigit(s[i])) { // 문자가 숫자가 아니면 false 반환
return false;
}
}
// 위의 조건들을 모두 통과하면 true를 반환합니다.
return true;
}
- 문자열 길이 확인 : 문자열
s
의 길이를 strlen()
함수로 확인한 후, 4 또는 6이 아니면 false
를 반환합니다.
- 숫자 확인 :
isdigit()
함수를 사용하여 문자열의 각 문자가 숫자인지 확인합니다. 만약 숫자가 아닌 문자가 있으면 false
를 반환합니다.
- 모든 조건 통과 시 : 모든 조건을 통과하면
true
를 반환합니다.