gpt4 book ai didi

C++识别字符串中的特殊字符

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:34 25 4
gpt4 key购买 nike

我正在为学校编写一个程序,该程序应该检查密码的强度并将它们分成 3 个参数。我在识别强字符中的特殊字符以对强字符进行分类时遇到问题。非常感谢任何帮助。

#include <iostream>
#include <string>

using namespace std;

int main()
{
string input;
bool complete = false;
bool hasUpper = false;
bool hasLower = false;
bool hasDigit = false;
bool specialChar = false;
int count;
char special = 'a';


do
{
cout << endl << "Enter a password to rate its strength. Enter q to quit." << endl;
cin >> input;

for(count =0; count < input.size(); count++)
{
if( islower(input[count]) )
hasLower = true;

if( isupper(input[count]) )
hasUpper = true;

if( isdigit(input[count]) )
hasDigit = true;

special = input.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ");

if (special != 'a')
specialChar = true;
}

if (hasLower && hasUpper && hasDigit && specialChar && (count >= 8))
{
cout << "Strong" << endl;
}
else if((hasLower || hasUpper) && hasDigit && (count >= 6))
{
cout << "Moderate" << endl;
}
else
{
cout << "Weak" << endl;
}
if (input == "q") complete = true;
}while (!complete);
return 0;
}

最佳答案

size_t special;

if (special != string::npos)
specialChar = true;

find_first_not_of 返回找到的字符的索引,如果没有找到字符,则返回特殊值 string::npos

因为 find_first_not_of 返回一个索引而不是一个字符,所以您必须将 special 声明为 size_t 而不是 char

关于C++识别字符串中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com