使用 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; }