我需要在C ++中创建一个函数,它接受一个只包含数字的字符串,例如:
string s = "7654321"
并将其转换为整数向量。所以矢量应该是这样的:
vec[1] = '7'
vec[2] = '6'
等
我尝试使用isstringstream,但在这种情况下这没用,导致该字符串中没有空格。
答案 0 :(得分:1)
您可以使用for循环遍历字符串,并使用push_back()和 - ' 0'
为每个值填充向量假设向量vec;
void fillVec(const string str1, vector<char> & vec) {
for(int i = 0; i < str1.length(); i++)
vec.push_back(str1[i]) - '0';
}
实施此项目的示例程序
// Example program
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void fillVec(const string, vector<int> &);
int main()
{
vector<int> vec;
string str1 = "1234567";
fillVec(str1, vec);
for(int i = 0; i < vec.size(); i++)
cout << vec[i] << ", ";
return 0;
}
void fillVec(const string str1, vector<int> & vec) {
for(int i = 0; i < str1.length(); i++)
vec.push_back(str1[i]-'0');
}