先决条件:
将字符串转换为整数是 C++ 中完成的常见任务之一,但当存在多个整数值时,它会变得相当复杂。因此,为了解决这个问题,我们可以将值存储在向量中。
例子:
string str=”123″ ;
// conversion to store it inside vector<int>
// Storing this value inside vector [ 123 ]
可以使用 3 种方法将字符串转换为整数向量:
- 使用 ASCII 值
- 使用Stoi()
- 使用字符串流
1.使用ASCII值进行转换
上面的代码将字符串“12345”的每个字符转换为int类型向量的元素。此外,还有另一种方法可以尝试将字符串转换为整数向量。
例子:
C++
// C++ program for converting
// String to Integer Vector
// using ASCII values for
// conversion
#include <iostream>
#include <vector>
using namespace std;
int main()
{
string s = "12345";
vector<int> v(1, 0);
int j = 0;
for (int i = 0; i < s.size(); i++) {
// s[i] - '0' would also work here
v[j] = v[j] * 10 + (s[i] - 48);
}
for (auto val : v) {
cout << val << endl;
}
return 0;
}
输出
12345
2. 使用Stoi( )
我们可以使用另一种方法将字符串转换为int,从而将字符串转换为int 的向量。我们可以使用“stoi()”函数。此方法与较新版本的 C++ 一起使用。本质上,使用 C++11 及更多。它接受一个字符串值作为输入并返回一个整数值作为输出。
例子:
C++
// C++ Program to convert
// String to vector int
// Using Stoi
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
// String to be converted
string s = "12345";
// Vector declared
vector<int> v;
// Convert
v.push_back(stoi(s));
for (auto val : v) {
cout << val << endl;
}
return 0;
}
输出
12345
3.使用字符串流进行转换
stringstream 是一个可以将字符串视为流的函数,流允许您从字符串中读取。字符串流可以使用流头文件。
要了解更多信息,请参阅文章 - stringstream in C++.
C++
// C++ Program to convert
// String to integer vector
// Using stringstream
#include <bits/stdc++.h>
using namespace std;
int main()
{
// includes spaces
string line = "1 2 3 4 5";
stringstream lineStream(line);
vector<int> numbers(istream_iterator<int>(lineStream),
{});
for (auto it : numbers) {
cout << it <<" ";
}
cout << endl;
return 0;
}
输出
1 2 3 4 5
4. 使用atoi()
我们还可以借助atoi()函数将字符串转换为整数。在此方法中,首先将字符串转换为字符数组,然后使用 atoi() 函数将该字符数组转换为整数向量。 atoi() 将字符数组作为输入并返回整数值作为输出。
C++
// C++ Program to convert
// String to vector int
// Using atoi
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
// Char array to be converted
string str = "12345";
// converting string to char array
const char* s = str.c_str();
// Vector declared
vector<int> v;
// Convert
v.push_back(atoi(s));
for (auto val : v) {
cout << val << endl;
}
return 0;
}
输出
12345
相关用法
- C++ String转Integer用法及代码示例
- C++ String转int用法及代码示例
- C++ String转Date用法及代码示例
- C++ String转size_t用法及代码示例
- C++ String转Char Array用法及代码示例
- C++ String Assign()用法及代码示例
- C++ String Data()用法及代码示例
- C++ String Find()用法及代码示例
- C++ String append()用法及代码示例
- C++ String at()用法及代码示例
- C++ String back()用法及代码示例
- C++ String begin()用法及代码示例
- C++ String c_str()用法及代码示例
- C++ String capacity()用法及代码示例
- C++ String cbegin()用法及代码示例
- C++ String cend()用法及代码示例
- C++ String clear()用法及代码示例
- C++ String compare()用法及代码示例
- C++ String copy()用法及代码示例
- C++ String crbegin()用法及代码示例
- C++ String crend()用法及代码示例
- C++ String empty()用法及代码示例
- C++ String end()用法及代码示例
- C++ String erase()用法及代码示例
- C++ String find_first_not_of()用法及代码示例
注:本文由纯净天空筛选整理自harsh464565大神的英文原创作品 C++ – Convert String to Integer Vector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。