[c++] C++에서의 규칙에 맞는 문자열 검증하는 방법
C++에서 문자열을 검증하는 방법은 규칙에 따라 문자열을 분석하고 조건을 충족시키는지 확인하는 과정을 포함합니다. 예를 들어, 전화번호, 이메일 주소, 또는 비밀번호와 같은 형식에 맞는지 검증할 수 있습니다.
전화번호 형식 검증
전화번호의 형식을 확인하려면 정규 표현식(Regular Expression)을 사용할 수 있습니다. 다음은 C++에서 전화번호 형식을 검증하는 예제 코드입니다.
#include <iostream>
#include <regex>
int main() {
std::string phoneNumber = "010-1234-5678";
std::regex pattern("(\\d{3}-\\d{4}-\\d{4})");
if (std::regex_match(phoneNumber, pattern)) {
std::cout << "Valid phone number" << std::endl;
} else {
std::cout << "Invalid phone number" << std::endl;
}
return 0;
}
이 예제 코드는 “010-1234-5678”과 같은 형식의 전화번호를 검증합니다. std::regex_match
함수를 사용하여 정규 표현식과 문자열을 비교합니다.
이메일 주소 형식 검증
이메일 주소의 형식을 확인하기 위해서도 정규 표현식을 사용할 수 있습니다. 다음은 C++에서 이메일 주소 형식을 검증하는 예제 코드입니다.
#include <iostream>
#include <regex>
int main() {
std::string emailAddress = "example@email.com";
std::regex pattern("([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,})");
if (std::regex_match(emailAddress, pattern)) {
std::cout << "Valid email address" << std::endl;
} else {
std::cout << "Invalid email address" << std::endl;
}
return 0;
}
이 예제 코드는 “example@email.com”과 같은 형식의 이메일 주소를 검증합니다.
비밀번호 형식 검증
비밀번호의 형식을 확인할 때는 문자열의 길이와 특수문자, 숫자, 대소문자 등의 조건을 확인할 수 있습니다. 다음은 C++에서 비밀번호 형식을 검증하는 예제 코드입니다.
#include <iostream>
#include <cctype>
bool isPasswordValid(const std::string& password) {
if (password.length() < 8) {
return false;
}
bool hasDigit = false;
bool hasUpper = false;
bool hasLower = false;
bool hasSpecial = false;
for (char c : password) {
if (std::isdigit(c)) {
hasDigit = true;
} else if (std::isupper(c)) {
hasUpper = true;
} else if (std::islower(c)) {
hasLower = true;
} else if (c == '!' || c == '@' || c == '#' || c == '$' || c == '%' || c == '^' || c == '&' || c == '*') {
hasSpecial = true;
}
}
return hasDigit && hasUpper && hasLower && hasSpecial;
}
int main() {
std::string password = "Password123!";
if (isPasswordValid(password)) {
std::cout << "Valid password" << std::endl;
} else {
std::cout << "Invalid password" << std::endl;
}
return 0;
}
이 예제 코드는 비밀번호가 8자 이상이고 숫자, 대문자, 소문자, 특수문자를 각각 포함하는지 확인합니다.
C++에서는 정규 표현식과 문자열 조작 함수들을 활용하여 다양한 형식의 문자열을 검증할 수 있습니다.