C++教程-在C++中将字符串转换为整数
![](https://wx.javatiku.cn/j/j301-t.jpg)
将字符串转换为整数(C++)
本节将讨论使用C++编程语言将给定字符串数据转换为整数的不同方法。在某些情况下,我们需要将某种数据转换为另一种类型,其中一种情况就是在编程中将字符串转换为整数数据。
例如,我们有一个数字字符串 "143",我们想将它转换为数字类型。我们需要使用一个将字符串转换为整数并将数值数据返回为 143 的函数。现在,我们将学习每种方法,以帮助在C++编程语言中将字符串数据转换为整数。
C++编程语言中将字符串数据转换为整数的不同方法。
- 使用stringstream类
- 使用stoi()函数
- 使用atoi()函数
- 使用sscanf()函数
使用stringstream类
stringstream类是用于将数字字符串转换为int类型的类。stringstream类声明了一个流对象,可以将字符串作为流对象插入,并根据流来提取转换后的整数数据。stringstream类具有"<<"和">>"运算符,用于从(<<)运算符中获取数据,并通过将流传递给(>>)左运算符来插入数据。
让我们编写一个程序来演示如何使用stringstream类将字符串数据转换为整数的方法。
程序1.cpp
#include <iostream>
#include <sstream> // 使用stringstream类
using namespace std;
int main()
{
string str1 = "143"; // 声明一个字符串
int intdata; // 声明整数变量
/* 使用stringstream类声明一个流对象来插入字符串,并根据流提取转换后的整数数据。 */
stringstream obj;
obj << str1; // 向obj插入数据
obj >> intdata; // 提取整数类型数据
cout << "字符串的值为:" << str1 << endl;
cout << "字符串转换为整数的表示为:" << intdata << endl;
return 0;
}
输出:
字符串的值为:143
字符串转换为整数的表示为:143
在上述程序中,我们使用stringstream类创建了一个名为obj的对象,它帮助将字符串数据转换为整数。我们使用"<<"运算符将字符串字符插入到obj对象中,然后使用">>"运算符将转换后的字符串从obj中提取为数字数据。
使用sscanf()函数
sscanf()函数将给定的字符串转换为指定的数据类型,比如整数。
语法:
sscanf(str, "%d", &intvar);
sscanf()函数有三个参数,用于指定字符串(str)、数据格式(%d)和存储转换后字符串的整数变量(&intvar)。
sscanf()函数的算法:
- sscanf()函数属于stringstream类,因此我们需要在程序中导入该类。
- 初始化一个常量字符串str。 创
- 建一个整数变量,用于存储由函数生成的整数值。
- 将字符串变量传递给sscanf()函数,并将sscanf()函数分配给整数变量,以存储函数生成的整数值。
- 打印整数值。
让我们考虑一个使用sscanf()函数将字符串转换为数字的示例。
程序2.cpp
#include <iostream>
#include <sstream> // 使用stringstream类
using namespace std;
int main()
{
// 声明字符字符串
const char *str1 = "555";
const char *str2 = "143";
const char *str3 = "101";
// 声明整数变量
int numdata1;
int numdata2;
int numdata3;
/* 使用sscanf()函数传递字符字符串str1和一个整数变量来存储字符串。 */
sscanf(str1, "%d", &numdata1);
cout << "字符字符串的值为:" << str1;
cout << "\n字符串到整数的表示为:" << numdata1 << endl;
sscanf(str2, "%d", &numdata2);
cout << "\n字符字符串的值为:" << str2;
cout << "\n字符串到整数的表示为:" << numdata2 << endl;
sscanf(str3, "%d", &numdata3);
cout << "\n字符字符串的值为:" << str3;
cout << "\n字符串到整数的表示为:" << numdata3 << endl;
return 0;
}
输出:
字符字符串的值为:555
字符串到整数的表示为:555
字符字符串的值为:143
字符串到整数的表示为:143
字符字符串的值为:101
字符串到整数的表示为:101
使用stoi()函数
stoi()函数通过将字符串作为参数传递来将字符串数据转换为整数类型,并返回一个整数值。
语法:
stoi(str);
stoi()函数包含一个str参数。将str字符串传递到stoi()函数中,以将字符串数据转换为整数值。
stoi()函数的算法:
- 初始化一个字符串变量来存储字符串值。
- 然后,创建一个整数类型变量,使用stoi()函数将字符串转换为整数类型数据。
- 打印整数变量的值。
让我们创建一个程序,使用stoi()函数将字符串值转换为整数类型,使用C++编程语言。
程序3.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string strdata1 = "108";
string strdata2 = "56.78";
string strdata3 = "578 Welcome";
// 使用stoi()函数传递字符串作为参数
int intdata1 = stoi(strdata1);
int intdata2 = stoi(strdata2);
int intdata3 = stoi(strdata3);
// 打印转换后的值
cout << "使用stoi(\"" << strdata1 << "\")将字符串转换为整数的结果是:" << intdata1 << endl;
cout << "使用stoi(\"" << strdata2 << "\")将字符串转换为整数的结果是:" << intdata2 << endl;
cout << "使用stoi(\"" << strdata3 << "\")将字符串转换为整数的结果是:" << intdata3 << endl;
return 0;
}
输出:
使用stoi("108")将字符串转换为整数的结果是:108
使用stoi("56.78")将字符串转换为整数的结果是:56
使用stoi("578 Welcome")将字符串转换为整数的结果是:578
使用atoi()函数
atoi()函数用于将字符类型的字符串转换为整数值。atoi()函数传递字符类型的字符串,返回整数数据。
语法:
atoi(const char *str);
atoi()函数的算法:
- 初始化一个指针类型的字符数组来存储字符串。
- 然后,创建一个整数类型变量,使用atoi()函数将字符串转换为整数类型数据。
- 打印整数变量的值。
让我们创建一个程序,使用atoi()函数将字符串值转换为整数类型,使用C++编程语言。
程序4.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
// 声明一个常量字符数组的字符串
const char *strdata1 = "256";
const char *strdata2 = "16.18";
const char *strdata3 = "1088 Good Bye";
// 使用atoi()函数传递字符类型数组作为参数
int intdata1 = atoi(strdata1);
int intdata2 = atoi(strdata2);
int intdata3 = atoi(strdata3);
// 打印转换后的值
cout << "使用atoi(\"" << strdata1 << "\")将字符串转换为整数的
输出:
将字符串转换为整数的结果:
使用atoi("256")将字符串转换为整数的结果是:256
使用atoi("16.18")将字符串转换为整数的结果是:16
使用atoi("1088 Good Bye")将字符串转换为整数的结果是:1088