我实现了以下代码,它完成了它应该做的事情,但我认为它可以/应该被简化。
基本上,我需要创建一个数字向量,每个数字都包含在 testString 中找到的一个数字。有什么方法可以直接从 char 构造字符串流(即 testString[i])?如果可以以 C++ 方式完成,我宁愿不涉及 C 风格的函数,比如 atoi。
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main ()
{
std::string testString = "abc123.bla";
std::string prefix = "abc";
std::vector<unsigned short> digits;
if (0 == testString.find(prefix))
{
for (size_t i = prefix.size(); i < testString.find("."); ++i)
{
int digit;
std::stringstream digitStream;
digitStream << testString[i];
digitStream >> digit;
digits.emplace_back(digit);
}
}
for (std::vector<unsigned short>::iterator digit = digits.begin(); digit < digits.end(); ++digit)
{
std::cout << *digit << std::endl;
}
return 0;
}