先決條件:
將字符串轉換為整數是 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。