gpt4 book ai didi

c++ - 检查字符串是否包含数字的函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:59 24 4
gpt4 key购买 nike

我正在用 c++(我刚刚开始学习)开发一个项目,但不明白为什么这个函数不起作用。我正在尝试编写一个带有变量 first_name 的“Person”类,并使用函数 set_first_name 来设置名称。 Set_first_name 需要调用一个函数(下面的函数)来检查名字中是否有任何数字。该函数总是返回 false,我想知道为什么?另外,这是检查数字的最佳方法,还是有更好的方法?

   bool Person::contains_number(std::string c){ // checks if a string contains a number
if (c.find('0') == std::string::npos || c.find('1') == std::string::npos || c.find('2') == std::string::npos || c.find('3') == std::string::npos
|| c.find('4') == std::string::npos || c.find('5') == std::string::npos || c.find('6') == std::string::npos || c.find('7') == std::string::npos
|| c.find('8') == std::string::npos || c.find('9') == std::string::npos){// checks if it contains number

return false;
}
return true;
}

最佳答案

将所有的 || 更改为 &&

更好的是:

return std::find_if(s.begin(), s.end(), ::isdigit) != s.end();        

或者,如果你有它:

return std::any_of(s.begin(), s.end(), ::isdigit);

关于c++ - 检查字符串是否包含数字的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642292/

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