Я реализовал следующий код, который делает то, что должен, но я думаю, что его можно/нужно упростить.
По сути, мне нужно создать вектор чисел, каждое из которых содержит одну из цифр, найденных в testString. Есть ли способ построить поток строк непосредственно из символа (т.е. testString [i])? Я бы предпочел не использовать функции в стиле C, такие как atoi, если это можно сделать на языке C++.
#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;
}
(3, 'a') == aaa
). - person chris   schedule 11.09.2012testString[i] - '0'
если я правильно понял. - person obataku   schedule 11.09.2012'1' - '0'
оценивается как1
,'2' - '0'
как2
и т. д. - person obataku   schedule 11.09.2012