你好?我想知道如何在我的字符串代码中找到数字。
这是我的c ++代码。
string firSen;
cout<<"write the senctence : "<<endl;
getline(cin,firSen);
int a=firSen.find("pizza");
int b=firSen.find("hamburger");
int aa=firSen.find(100);
int bb=firSen.find(30);
我想写
I want to eat pizza 100g, hamburger 30g!!
我想知道100和30地址。
我知道如何找到披萨和汉堡的地址。(正确的代码)
但我不知道如何找到数字。(我认为int aa = firSen.find(100); int bb = firSen.find(30);是错误的代码)
你可以帮帮我吗?
最佳答案
std::string::find()
函数将std::string
或const char*
作为有效的搜索键。
如果要搜索“通用数字”,则必须将其转换为std::string
或使用const char*
文字
size_type aa=firSen.find("100");
要么
int num = 100;
size_type aa=firSen.find(std::to_string(num));
请参见
std::to_string()
函数参考从输入样本中查找时,您事先不知道数值,因此查找类似
size_type aa=firSen.find("100");
变得无用。
实际需要的是一些不错的解析器,它使您可以在某些需要数字属性(例如样本中的权重)的关键字之后读取数字值。
最简单的方法可能是,找到
"hamburger"
或"pizza"
之类的关键字,然后从找到的位置继续前进,找到下一个数字('0-9'),然后从该位置提取数字。按照std::regex中的建议使用@deeiip's answer可能是解决问题的一种简便方法。
关于c++ - 如何搜索字符串中的数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27022093/