首页 > 编程语言 >c++判断字符串全是字母或数字

c++判断字符串全是字母或数字

时间:2024-11-29 16:26:02浏览次数:5  
标签:std ch return string 字母 c++ str 字符串

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

相关文章

  • 10C++选择结构(4)——教学
    一、switch语句(第25课成绩等级)问题:风之巅小学规定,若测试成绩大于或等于90分为“A”,大于或等于70分小于90分为“B”,大于或等于60分小于70分为“C”,60分以下为“D”。试编一程序,输入一个成绩,输出它的等级。流程图如下:用if语句处理多个分支时需使用if-else-if结构,分支越多,嵌套......
  • C++练级计划->《右值引用和移动语义》
    目录什么是左值右值?什么是左值?什么是右值?左值引用和右值引用左值引用右值引用右值引用使用场景和意义使用场景:左值引用的短板右值引用和移动语义:移动构造:右值引用的使用场景+1:完美转发万能引用什么是左值右值?什么是左值?左值是一个有具体地址的值。左值可......
  • C++关于二叉树的具体实现
    目录1.二叉树的结构2.创建一棵二叉树3.二叉树的先序遍历1.借助栈的先序遍历2.利用递归的先序遍历4.二叉树的中序遍历5.二叉树的后序遍历1.借助栈的后序遍历2.利用递归的后序遍历6.二叉树的层序遍历7.tree.h8.tree.cpp9.main.cpp1.二叉树的结构对于二叉树来说......
  • C++:多态的原理
    目录一、多态的原理1.虚函数表 2.多态的原理  二、单继承和多继承的虚函数表1、单继承中的虚函数表2、多继承中的虚函数表  一、多态的原理1.虚函数表 首先我们创建一个使用了多态的类,创建一个对象来看其内部的内容:#include<iostream>usingnamespacestd;......
  • C++二级抽测题目(答案+题目)
    今天我给大家出一套C++二级考题限时2.5小时,大家加油!!!题目1:温度转换说明编一程序,将摄氏温度换为华氏温度。公式为:f=9/5*c+32。其中f为华氏温度,c是摄氏温度。(5.2.12)输入格式输入一行,只有一个整数c输出格式输出只有一行,包括1个实数。(保留两位小数)样例输入数据15......
  • C++类和对象(下)
    构造函数之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式,就是初始化列表,初始化列表的使用方式是以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。每个成员变量在初始化列表中......
  • C++读写word文档(.docx)-DuckX库的使用
    DuckX是一个用于创建和编辑MicrosoftWord(.docx)文件的C++库。本文将简单介绍其用法,库的编译可见https://blog.csdn.net/hfy1237/article/details/144129745一、基本用法1.读取文档#include<iostream>#include"duckx.hpp"intmain(){ duckx::Document......
  • 精准高效-C++语言集成翔云VIN码识别接口、vin码识别sdk
    在当今快节奏的商业环境中,汽车行业面临着前所未有的挑战与机遇。无论是二手车交易、保险评估还是供应链管理,准确快速地获取车辆信息已成为提高效率、增强竞争力的关键。针对市场需求,翔云提供了VIN码识别接口,能够精确捕捉VIN码并输出,用科技的力量助力企业优化业务流程。......
  • 人脸识别API解锁智能生活、C++人脸识别接口软文
    在这个数字化转型的时代,科技正以前所未有的速度改变着我们的生活方式。其中,人脸识别技术作为人工智能领域的一项重要突破,已经逐渐渗透到我们生活的方方面面。翔云为广大有需求的用户提供了人脸识别接口解决方案,助力各行各业快速实现人脸比对功能。人脸识别接口基于深......
  • 09C++选择结构(3)
    一、求3个整数中最小值题目:输入三个整数,表示梨的重量,输出最小的数。方法1:经过三次两两比较,得出最小值。a<=b&&a<=cmin=ab<=c&&b<=amin=bc<=b&&c<=amin=c流程图:#include<typeinfo>//变量类型头文件,还是有问题;无法判断int#include<iostream>//包含输......