c++字符串搜索函数
c++ string search functions
我有以下功能:
bool specialChk(string a)
{
for (int i = 0; i < a.length(); i++)
{
if (a[i] == '`' || a[i] == '~' || a[i] == '!' || a[i] == '@' || a[i] == '#' || a[i] == '$' || a[i] == '%' || a[i] == '^' || a[i] == '&' || a[i] == '*' || a[i] == '(' || a[i] == ')' || a[i] == '-' || a[i] == '_' || a[i] == '=' || a[i] == '+' || a[i] == '[' || a[i] == ']' || a[i] == '{' || a[i] == '}' || a[i] == ';' || a[i] == ':' || a[i] == ''' || a[i] == '"' || a[i] == ',' || a[i] == '<' || a[i]== '>' || a[i] == '.' || a[i] == '/' || a[i] == '?' || a[i] == '|' || a[i] == '')
return true;
}
}
bool digitChk(string a)
{
for (int i = 0; i < a.length(); i++)
{
if (a[i] == '1' || a[i] == '2' || a[i] == '3' || a[i] == '4'|| a[i] == '5' || a[i] == '6' || a[i] == '7' || a[i] == '8' || a[i] == '9' || a[i] == '0')
return true;
}
}
int symbolChk(string a) // combining symbol checks
{
if (specialChk(a) && digitChk(a))
return 2;
else if (specialChk(a) || digitChk(a))
return 1;
else
return 0;
}
不管字符串通过,它总是返回2。有人知道为什么吗?
您在失败时忘记了return false
这不是自动发生的;在这种情况下,您的返回值是未指定的。事实上,整个程序都有未定义的行为。
bool specialChk(string a) // ← are you sure you don't want `const string& a`?
{
for (int i = 0; i < a.length(); i++) {
if (/* omg at least wrap this */)
return true;
}
return false; // ← here!
}
与digitChk
相同。
你也可以试试这个。
#include <string>
using namespace std;
bool specialChk(string a) {
String checkList = "`~!@#$%^&*()-_=+[]{};:'",<>./?|\";
for (int i = 0; i < a.length(); i++) {
if(checkList.find(a[i]))
return true;
}
return false;
}
bool digitChk(string a) {
for (int i = 0; i < a.length(); i++) {
if (a[i] >= 48 && a[i] <= 57)
return true;
}
return false;
}
int symbolChk(string a) // combining symbol checks
{
if (specialChk(a) && digitChk(a))
return 2;
else if (specialChk(a) || digitChk(a))
return 1;
else
return 0;
}
相关文章:
- c++binary_search函数排序数组(流行名称搜索)出现问题
- 如何在动态数组上使用搜索函数
- C++二叉搜索树模板从函数返回节点
- 在对象数组中搜索字符串并返回相应值的函数
- 基于函数而不是集合的二分搜索或迭代器?
- 如何使用 binary_search STL 函数在嵌套类中搜索整数?
- 查找存储在二叉搜索树的所有非叶子中的数据总和?(返回整数的独立递归函数
- 二叉搜索树 - 实现"search"函数
- 如何计算函数的搜索复杂度
- 返回二叉搜索树特定级别的节点数的函数
- 为什么二叉搜索函数会抛出错误?
- 超过了三次函数根平分搜索时间限制
- 二进制搜索树没有匹配的函数调用
- 函数来搜索目录中的文件名
- 在C++目录中搜索文件的函数输出中出错
- 这是在传递 int num 时创建搜索函数的正确方法吗?使用链表库
- 如何在C ++代码中搜索所有构造函数?
- 尝试在别人的代码中C++创建函数(A* 搜索)
- 如何使用C++中的strrchr库函数搜索正斜杠
- 在函数搜索模式中引用二维数组时出错