當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。