c++ - 使用 C++ 访问字符串的每个单词
问题描述
我正在开发一个程序,我以字符串的形式从用户那里获取输入,然后使用以下语法找到它的长度。
getline(cin,password);
length=password.length();
程序的实际工作是进行密码验证,它从用户那里获取字符串输入,并且只允许使用字母数字字符(没有符号和空格)
现在,如果用户输入“符号和空格”,我需要访问字符串的每个单词并让用户知道输入的字符串包含“符号和空格”(如果存在),但我不知道如何访问字符串的每个单词。
解决方案
您可以充分利用正则表达式来检查您的密码,例如,此表达式确保在给定字符串中只允许使用小写和大写字母和数字:(^[a-zA-Z0-9]+$
开始位置^
到结束位置$
);
示例代码(在线测试):
#include <iostream>
#include <string>
#include <regex>
using namespace std;
bool validateAlphaNumsOnly(std::string pw) {
std::regex alphanum_only_regex { "^[A-Za-z0-9]+$" }; // expression beginning to end lower- and uppercase letters and numbers only
if(std::regex_search(pw, alphanum_only_regex)) {
std::cout << "That's a valid Password! " << pw << std::endl;
return true;
} else {
std::cout << "Invalid Password! " << pw << std::endl;
return false;
}
}
int main() {
validateAlphaNumsOnly("aaa abc");
validateAlphaNumsOnly("aaaYYYabc");
validateAlphaNumsOnly("aaaYYYabc1");
return 0;
}
PS:我们也可以使用正则表达式检查长度:我们需要 8 个或更多^[a-zA-Z0-9]{8,}$
而不是一个或多个+
字符...
推荐阅读
- windows - Ionic Windows 8.1 应用程序中的应用程序关闭事件?
- javascript - 我想用 .map() 显示我的状态
- html - .Net Bootstrap Col Md 都转到 Internet Explorer 的页面中心
- amazon-web-services - IIS 托管应用程序在访问网页时停止
- drupal - 我应该为我的新网站使用哪个版本的 drupal?
- php - 将原始 sql 转换为 laravel 查询生成器
- python - 如何在 Python 上绘制包含 txt 文件(带有数据集)的 csv 文件
- javascript - 查找第一个空类 div
- bash - 使用 awk 比较具有许多列的两个文件并获取数据不同的列
- java - HTTP状态代码410和Angular 5的其他代码之间的行为差异