C++ 如何將字串轉換成整數型態

2022/09/06 C++

1. std::stoi

stoi 用來轉換 string 的,作用是將字串(string)轉化為 int 型態。

#include <iostream>
#include <string>

using namespace std;
int main()
{
    string str = "1010";  
    int number = std::stoi(str);
	  printf("Result: %d\n",number);
}

2. std::atoi

這是 C 語言中把字符串轉換成整型數的一個函數。atoi 轉化的是 char[],因此 c_str() 的作用是將 string* 轉化為 const char*

#include <iostream>
#include <string>

using namespace std;
int main()
{
    std::string str = "1010";
    int number = std::atoi(str.c_str()); 
    printf("Result: %d\n",number);
}

3. string streams

此方法執行速度慢,另外要引入 sstream 庫。

#include <iostream>
#include <string>
#include <sstream>

using namespace std;
int main()
{
    string str = "1010";  
    int number;  
    std::istringstream(str) >> number;
    printf("Result: %d\n",number);
}

4. sscanf()

透過 sscanf 讀取輸入一個字符串格式化。

#include <iostream>
#include <string>

using namespace std;
int main()
{
     std::string str = "1010";
     int number;
     if (sscanf(str.c_str(), "%d", &number) == 1) 
     {
         printf("Result: %d\n",number);
     }
}

後記

在 C++ 語言中可以很方便的透過 string 建立字串。若要顯示內容在 printf 中必須要加上 c_str() 給予字元指標。

#include <iostream>
#include <string>

using namespace std;
int main()
{
     std::string str = "1010 Blog";
     printf("%s\n",str.c_str()); // 方法一
     cout << str << endl; // 方法二
}

Reference

鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents