input; -6ren">
gpt4 book ai didi

c++ - 6 智能感知 : no suitable conversion function from "std::string" to "int" exists

转载 作者:行者123 更新时间:2023-11-28 00:53:09 24 4
gpt4 key购买 nike

嘿,我正在验证一个字符串。

string getString(string q)
{
string input;

do
{
cout << q.c_str() << endl;
cin >> input;
} while (!isalpha(input));

return input;
}

当使用 while(!isalpha(input)); 输入时会出现该错误。

谁能帮我解决这个问题?

最佳答案

other answer描述了问题所在,但这里有一个使用 algorithms from the standard library 的解决方案而不是自己编写(示例需要 C++11)

bool all_alpha( std::string const& s )
{
return std::all_of( s.cbegin(), s.cend(), static_cast<int(*)(int)>(std::isalpha) );
}

只有当字符串中的所有字符都是字母时,上述函数才会返回 true。如果您只想禁止使用数字字符,我会使用稍微不同的函数。

bool any_digit( std::string const& s )
{
return std::any_of( s.cbegin(), s.cend(), static_cast<int(*)(int)>(std::isdigit) );
}

bool no_digits( std::string const& s )
{
return std::none_of( s.cbegin(), s.cend(), static_cast<int(*)(int)>(std::isdigit) );
}

使用这些函数来验证您从用户那里收到的输入。


如果您不能使用 C++11 功能,可以修改这些功能以使用 std::find_if相反,将 find_if 的返回值与 s.end() 进行比较以确定成功/失败。

关于c++ - 6 智能感知 : no suitable conversion function from "std::string" to "int" exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958840/

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