检测混合字符串中的非字母字符
Detect non alphabetic characters in a mixed string
我的代码非常简化的版本:
#include <iostream>
#include <string>
using namespace std;
int main () {
string name;
cout << "Enter first and last name" << endl;
getline(cin, name);
return 0;
}
如您所见,我希望我的用户输入他们的名字和姓氏,其中包括空格。我想检查它是否有数字字符,如果输入了任何字符,则会抛出错误。一个示例输入可以是:"J0hn Sm1th",这当然会显示错误。
我知道我将不得不使用 isAlpha(),如果只输入数字或只输入字母,我可以让它工作,但当它们组合在一起时就不行了。
如果您有C++11,请使用std::all_of(name.begin(), name.end(), isalpha)
。
#include <cstddef>
#include <string>
bool check_name(const string& str)
{
for (std::size_t i = 0; i < str.size(); ++i)
if (!((str[i]>='a' && str[i]<='z') ||
(str[i]>='A' && str[i]<='Z') ||
str[i]==' ' || str[i]=='-' ))
return false;
return true;
}
您可以检查小写和大写值是否相同,对于非字母字符,它们将是相同的
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 有没有办法初始化混合字符和"strings"数组
- boost::p rogram_option::store 在选项字符串包含混合语言字符时引发异常
- 如何打印混合 ASCII 字符和 Unicode 的字符串的每个字符
- 在VC ++浮点数据类型值中,如何检查字符串或特殊字符是否混合
- 检测混合字符串中的非字母字符
- 为什么在尝试读取数字和非数字混合输入时有些字符串会被截断,如下面的代码所示
- 通过boost::asio传输混合unicode和单字节字符的最佳方式
- 增强:精神字符/字符串混合
- 在C++中从文件中读取整数和字符的混合