当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ String转Integer Vector用法及代码示例


先决条件:

将字符串转换为整数是 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


相关用法


注:本文由纯净天空筛选整理自harsh464565大神的英文原创作品 C++ – Convert String to Integer Vector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。