提取前两个整数,因为它们出现在字符串c ++中

时间:2013-04-03 02:11:26

标签: c++ regex string-parsing

我有一个关于从c ++字符串中删除整数的基本问题。我对c ++并不是特别熟悉,也不太熟悉正则表达式。

我有一个字符串,如

string myString = "12 text 345 text"

整数可以是任意长度和文本(它不是固定的)。我需要做的是将第一个整数(12)和第二个整数(345)提取到两个单独的整数对象中。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您可以按如下方式使用stringstream

 std::string myString = "12 text 345 text";
 int firstInteger = 0;
 int secondInteger = 0;
 std::string firstString= "";
 std:string secondString="";

 std::stringstream ss(myString);
 ss >> firstInteger >> firstString >> secondInteger >> secondString;
 std::cout << "firstInteger " << firstInteger 
      << "\nSecondInteger " << secondInteger <<std::endl;

输出:

 firstInteger 12
 secondInteger 345

答案 1 :(得分:1)

这样做

stringstream os(myString);
os >> int imp1 >> string dummy >> int imp2;

cout << imp1 << " and " << imp2;