你好?我想知道如何在我的字符串代码中找到数字。
这是我的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::stringconst 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/

10-12 03:11
查看更多