c++判断字符串全是字母或数字
使用 std::all_of 判断字符串是否全为字母、数字或字母数字
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype> // 用于 isdigit, isalpha 等函数
// std::islower(ch); // 判断字符是否是小写字母
// std::isupper(ch); // 判断字符是否是大写字母
// 判断字符串是否全是字母
bool isAlpha(const std::string& str) {
return std::all_of(str.begin(), str.end(), [](char ch) {
return std::isalpha(ch); // 检查每个字符是否为字母
});
}
// 判断字符串是否全是数字
bool isDigit(const std::string& str) {
return std::all_of(str.begin(), str.end(), [](char ch) {
return std::isdigit(ch); // 检查每个字符是否为数字
});
}
// 判断字符串是否仅包含字母或数字
bool isAlphaNum(const std::string& str) {
return std::all_of(str.begin(), str.end(), [](char ch) {
return std::isalnum(ch); // 检查每个字符是否为字母或数字
});
}
int main() {
std::string input;
std::cout << "请输入字符串:";
std::cin >> input;
if (isAlpha(input)) {
std::cout << "字符串全是字母。" << std::endl;
} else if (isDigit(input)) {
std::cout << "字符串全是数字。" << std::endl;
} else if (isAlphaNum(input)) {
std::cout << "字符串仅包含字母或数字。" << std::endl;
} else {
std::cout << "字符串包含其他字符。" << std::endl;
}
return 0;
}
- 使用 std::regex(正则表达式)
#include <iostream> #include <string> #include <regex> // 判断字符串是否全是字母 bool isAlpha(const std::string& str) { std::regex alpha_pattern("^[A-Za-z]+$"); return std::regex_match(str, alpha_pattern); // 判断是否匹配字母模式 } // 判断字符串是否全是数字 bool isDigit(const std::string& str) { std::regex digit_pattern("^[0-9]+$"); return std::regex_match(str, digit_pattern); // 判断是否匹配数字模式 } // 判断字符串是否仅包含字母或数字 bool isAlphaNum(const std::string& str) { std::regex alphanum_pattern("^[A-Za-z0-9]+$"); return std::regex_match(str, alphanum_pattern); // 判断是否匹配字母或数字模式 } int main() { std::string input; std::cout << "请输入字符串:"; std::cin >> input; if (isAlpha(input)) { std::cout << "字符串全是字母。" << std::endl; } else if (isDigit(input)) { std::cout << "字符串全是数字。" << std::endl; } else if (isAlphaNum(input)) { std::cout << "字符串仅包含字母或数字。" << std::endl; } else { std::cout << "字符串包含其他字符。" << std::endl; } return 0; }