使用 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; }
标签:std,ch,return,string,字母,c++,str,字符串 From: https://www.cnblogs.com/zwh0214/p/18576976