日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

在C++中把字符串轉換為整數的兩種簡單方法_C 語言

作者:迪魯賓 ? 更新時間: 2022-08-03 編程語言

當你用C++編碼時,經常會有這樣的時候,你會想把一種數據類型轉換為另一種。

在這篇文章中,你將看到兩種最流行的方法來學習如何在C++中把字符串轉換為整數。

讓我們開始吧!

C++中的數據類型

C++編程語言有一些內置的數據類型。

  • int,用于整數(整數)(例如10,150)。
  • double,用于浮點數(例如5.0,4.5)。
  • char,用于單個字符(例如'D','!')。
  • string, 一系列的字符(例如 "Hello")。
  • bool,用于布爾值(真或假)。

C++是一種強類型的編程語言,這意味著當你創建一個變量時,你必須明確地聲明它將存儲什么類型的值。

如何在C++中聲明和初始化 int s

要在C++中聲明一個int 變量,你需要首先寫出該變量的數據類型--本例中是int 。這將讓編譯器知道該變量可以存儲什么類型的值,因此它可以采取什么行動。

接下來,你需要給變量一個名字。

最后,不要忘了用分號來結束語句。

#include <iostream>

int main() {
    int age;
}

然后,你可以給你創建的變量一個值,像這樣。

#include <iostream>

int main() {
    int age;
    age = 28;
}

你可以通過初始化變量和最后打印結果來組合這些動作,而不是作為單獨的步驟來做。

// a header file that enables the use of functions for outputing information
//e.g. cout or inputing information e.g. cin
#include <iostream> 

// a namespace statement; you won't have to use the std:: prefix
using namespace std;


int main() { // start of main function of the program
    int age = 28; 
    // initialize a variable. 
    //Initializing  is providing the type,name and value of the varibale in one go.

    // output to the console: "My age is 28",using chaining, <<
    cout << "My age is: " << age << endl;
}// end the main function

如何在C++中聲明和初始化 string s

字符串是單個字符的集合。

在C++中聲明字符串的工作方式與聲明和初始化ints非常相似,你在上面的章節中看到了這一點。

C++標準庫提供了一個string 類。為了使用字符串數據類型,你必須在文件的頂部,在#include <iostream> 之后,包括<string> 頭部庫。

在包括該頭文件之后,你還可以添加你之前看到的using namespace std; 。

在其他方面,加入這一行后,你在創建字符串變量時將不必使用std::string ,只需使用string 。

#include <iostream>
#include <string>
using namespace std;

int main() {
    //declare a string variable

    string greeting;
    greeting = "Hello";
    //the `=` is the assignment operator,assigning the value to the variable

}

或者你可以初始化一個字符串變量并將其打印到控制臺。

#include <iostream>
#include <string>
using namespace std;

int main() {
    //initialize a string variable

    string greeting = "Hello";
   
   //output "Hello" to the console
   cout << greeting << endl;
}

如前所述,C++是一種強類型的語言。

如果你試圖給出一個與數據類型不一致的值,你會得到一個錯誤。

另外,將字符串轉換為整數并不像使用類型轉換那樣簡單,你可以在將doubles轉換為ints時使用。

例如,你不能這樣做。

#include <iostream>
#include <string>
using namespace std;

int main() {
   string str = "7";
   int num;

   num = (int) str;
}

編譯后的錯誤將是。

hellp.cpp:9:10: error: no matching conversion for C-style cast from 'std::__1::string' (aka
? ? ? 'basic_string<char, char_traits<char>, allocator<char> >') to 'int'
? ?num = (int) str;
? ? ? ? ?^~~~~~~~~
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/string:875:5: note: candidate function
? ? operator __self_view() const _NOEXCEPT { return __self_view(data(), size()); }
? ? ^
1 error generated.

有幾種方法可以將字符串轉換為int,你會在后面的章節中看到其中兩種方法。

如何使用 stoi() 函數將字符串轉換為int

將字符串對象轉換為數字int的一個有效方法是使用stoi() 函數。

這種方法通常用于較新版本的C++,在C++11中被引入。

它將一個字符串值作為輸入,并將它的整數版本作為輸出返回。

#include <iostream>
#include <string>
using namespace std;

int main() {
   // a string variable named str
   string str = "7";
   //print to the console
   cout << "I am a string " << str << endl;

   //convert the string str variable to have an int value
   //place the new value in a new variable that holds int values, named num
   int num = stoi(str);
   
   //print to the console
   cout << "I am an int " << num << endl;
}

輸出。

I am a string 7
I am an int 7

如何使用stringstream 類將一個字符串轉換為一個int

stringstream 類主要用于早期版本的C++。它通過對字符串進行輸入和輸出來工作。

要使用它,你首先要在你的程序頂部加入sstream 庫,加入一行#include <sstream> 。

然后你添加stringstream ,并創建一個stringstream 對象,該對象將保存你要轉換為int的字符串的值,并在轉換為int的過程中使用。

你使用<< 操作符,從字符串變量中提取字符串。

最后,你使用>> 操作符將新轉換的int值輸入到int變量中。

#include <iostream>
#include <string>
#include <sstream> // this will allow you to use stringstream in your program

using namespace std;

int main() {
    //create a stringstream object, to input/output strings
   stringstream ss; 
   
   // a variable named str, that is of string data type
   string str = "7";
   
   // a variable named num, that is of int data type
   int num;
   
   
   //extract the string from the str variable (input the string in the stream)
   ss << str;
   
   // place the converted value to the int variable
   ss >> num;
   
   //print to the consloe
   cout << num << endl; // prints the intiger value 7
}

總結

這就是你的成果!你已經看到了在C++中把字符串轉換為整數的兩種簡單方法。

原文鏈接:https://juejin.cn/post/7107142199829069855

欄目分類
最近更新