c++判斷字串全是字母或數字

我自逍遥笑發表於2024-11-29

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

  

相關文章