不要使用循环或字符数组来处理以下任何问题的字符串。使用字符串类的成员函数。您可以使用循环来读取文件并计算处理器数量。
以下是一些您可能会觉得有用的功能:
以下是我需要提取的示例字符串:
--bz2
我可以通过两次相同的字符串。我想抓住46并存储它,然后为48做同样的事情。
我不确定最好的办法。有可能做这样的事情:
"46 bits physical, 48 bits virtual"
或者可能是正则表达式?我想我可以使用它,只要我不需要使用第三方库或类似的东西。
答案 0 :(得分:0)
以下结果为我工作。
#include <sstream>
string myString = "hello 47";
int val;
istringstream iss (myString);
iss >> val;
cout << val << endl;
// The output of val will be 47.
答案 1 :(得分:0)
由于您在评论中指出允许使用STL,因此您可以使用依赖于STL算法的通用编程方法。例如,
#include <iostream>
#include <algorithm>
#include <iterator>
#include <string>
int main()
{
using namespace std;
string haystack = "46 bits physical, 48 bits virtual";
string result;
remove_copy_if(begin(haystack), end(haystack),
back_inserter(result),
[](char c) { return !isspace(c) && !isdigit(c); } );
cout << result;
}
您基本上将字符串中的字符视为输入流,从中过滤掉所有非数字字符并保留您要使用的分隔符字符。我的例子将空格作为分隔符。
以上给出了输出
46 48