C++ 将字符串传递给bool函数

C++ 将字符串传递给bool函数,c++,string,function,boolean,C++,String,Function,Boolean,如何通过将字符串传递给布尔函数使其工作?我需要让用户输入一系列字符串,在每次输入之后,程序应该根据字符串是否符合给定的标准给出反馈。字符串应包含子字符串“1101”,不包含任何字母。谢谢你的帮助 #include <iostream> #include <cstring> // for strstr #include <string> #include <cctype> using namespace std; bool stringCompa

如何通过将字符串传递给布尔函数使其工作?我需要让用户输入一系列字符串,在每次输入之后,程序应该根据字符串是否符合给定的标准给出反馈。字符串应包含子字符串“1101”,不包含任何字母。谢谢你的帮助

#include <iostream>
#include <cstring> // for strstr
#include <string>
#include <cctype>

using namespace std;

bool stringCompare(char*y);
string str2;
int main ()
{
    string str1, str2;
    str1= "1101";

    do
    {
    cout << "Please enter your string: " << endl;
    cin >> str2;

    while((stringCompare(str2)) == true)
    {

    if(strstr(str2.c_str(),str1.c_str())) // Primary string search function
    {
    cout << "ACCEPTED  " << endl;
    }
    else
    cout << "NOT ACCEPTED  " << endl;
}
    } while (2 > 1);

    return 0;
}

bool stringCompare(char*y)
{
    for(int a = 0; a < strlen(str2); a++)
    {
    if (!isdigit(str2[a]))
    return false;
    }
    return true;
}
#包括
#包括//用于strstr
#包括
#包括
使用名称空间std;
bool-stringCompare(char*y);
字符串str2;
int main()
{
字符串str1,str2;
str1=“1101”;
做
{
cout-str2;
while((stringCompare(str2))==true)
{
if(strstrstr(str2.c_str(),str1.c_str())//主字符串搜索函数
{

cout
stringCompare
接受类型为
char*
的参数,但您试图传递一个
std::string
。这不起作用

您可以使用
std::string
的方法获取指向
std::string
的内部
char
数组的
const char*
。这意味着您必须将参数设置为
const char*

或者,更好的是,您可以替换
stringCompare
来引用
std::string

bool stringCompare(string& y)
并将
strlen(str2)
更改为
str2.length()
(或者更好,将整个循环替换为:

for(char& ch : str2) // range-based for-loop loops over the entire str2
{
    if (!isdigit(ch))
        return false;
}
)


此外,您不需要比较返回值
==true
。只需执行以下操作:

while(stringCompare(str2))

stringCompare
接受类型为
char*
的参数,但您试图传递一个
std::string
。这不起作用

您可以使用
std::string
的方法获取指向
std::string
的内部
char
数组的
const char*
。这意味着您必须将参数设置为
const char*

或者,更好的是,您可以替换
stringCompare
,以引用
std::string

bool stringCompare(string& y)
并将
strlen(str2)
更改为
str2.length()
(或者更好,将整个循环替换为:

for(char& ch : str2) // range-based for-loop loops over the entire str2
{
    if (!isdigit(ch))
        return false;
}
)


此外,您不需要比较返回值
==true
。只需执行以下操作:

while(stringCompare(str2))

C++,很抱歉C++,很抱歉