C++ 将字符串转换为整数
本节将讨论使用C++编程语言将给定的字符串数据转换为整数的不同方法。在编程中,有一些情况或实例需要将某个数据转换为另一种类型,其中一种情况就是将字符串转换为整数数据。
例如,我们有一个数值字符串” 143 “,我们想将其转换为数值类型。我们需要使用一个将字符串转换为整数并将数值数据返回为143的函数。现在,我们将学习每种方法,这些方法有助于在C++编程语言中将字符串数据转换为整数。
在C++编程语言中将字符串数据转换为整数的不同方法。
- 使用stringstream类
- 使用stoi()函数
- 使用atoi()函数
- 使用sscanf()函数
使用stringstream类
stringstream 是一个用于将数值字符串转换为int类型的类。stringstream类声明了一个流对象,将字符串作为流对象插入,然后根据流提取转换后的整数数据。stringstream类具有”<<“和”>>”运算符,用于从(<<)运算符获取数据,并通过将流传递给(>>)左运算符插入数据。
让我们创建一个程序来演示在C++编程语言中使用stringstream类将字符串数据转换为整数。
程序1.cpp
#include
#include // use stringstream class
using namespace std;
int main()
{
string str1 = "143"; // declare a string
int intdata; // declare integer variable
/* use stringstream class to declare a stream object to insert a string and then fetch as integer type data. */
stringstream obj;
obj << str1; // insert data into obj
obj >> intdata; // fetch integer type data
cout << " The string value is: " << str1 << endl;
cout << " The representation of the string to integer type data is: " << intdata << endl;
return 0;
}
输出
The string value is: 143
The representation of the string to integer type data is: 143
在上面的程序中,我们使用stringstream类来创建一个obj对象,并且它有助于将字符串数据转换为整数。然后我们使用”<<“运算符将字符串字符插入到obj对象中,然后我们使用”>>”运算符将转换后的字符串从obj中提取为数字数据。
使用sscanf()函数
sscanf()函数可以将给定的字符串转换为指定的数据类型,比如整数。
语法
sccanf ( str, %d, &intvar);
sscanf()函数有三个参数来指定字符串(str)、数据说明符(%d)和整数变量(&intvar)来存储转换后的字符串。
sscanf()函数的算法
- sscanf()函数属于stringstream类,所以我们需要将该类导入到我们的程序中。
- 初始化一个常量字符串str。
- 创建一个整数变量来存储转换后的字符串为整数值。
- 将字符串变量传入sscanf()函数,并将sscanf()函数赋值给整数变量以存储函数生成的整数值。
- 打印整数值。
让我们考虑一个示例,使用sscanf()函数将字符串转换为数值型数字C++。
Program2.cpp
#include
#include // use stringstream class
using namespace std;
int main ()
{
// declare the character strings
const char *str1 = "555";
const char *str2 = "143";
const char *str3 = "101";
// declare the integer variables
int numdata1;
int numdata2;
int numdata3;
/* use sscanf() function and to pass the character string str1,
and an integer variable to hold the string. */
sscanf (str1, "%d", &numdata1);
cout <<" The value of the character string is: " << str1;
cout << "\n The representation of string to int value of numdata1 is: " << numdata1 <
输出
The value of the character string is: 555
The representation of string to int value of numdata is: 555
The value of the character string is: 143
The representation of string to int value of numdata is: 143
The value of the character string is: 101
The representation of string to int value of numdata is: 101
使用stoi()函数
stoi()函数通过将字符串作为参数传递来将字符串数据转换为整数类型,并返回一个整数值。
语法
stoi(str);
stoi()函数包含一个str参数。将str字符串传递给stoi()函数,将字符串数据转换为整数值。
stoi()函数的算法
- 初始化字符串变量以存储字符串值。
- 然后,创建一个整数类型的变量,使用stoi()函数将字符串转换为整数类型数据并存储。
- 打印整数变量值。
让我们编写一个程序,使用stoi()函数将字符串值转换为整数类型,使用C++编程语言。
Program3.cpp
#include
#include
using namespace std;
int main ()
{
string strdata1 = "108";
string strdata2 = "56.78";
string strdata3 = "578 Welcome";
// use stoi() function to pass string as arguments
int intdata1 = stoi (strdata1);
int intdata2 = stoi (strdata2);
int intdata3 = stoi (strdata3);
// print the converted values
cout << " The conversion of string to an integer using stoi(\"" << strdata1 << "\") is " << intdata1 <
输出
The conversion of string to an integer using stoi("108") is 108
The conversion of string to an integer using stoi("56.78") is 56
The conversion of string to an integer using stoi("578 Welcome") is 578
使用atoi()函数
atoi()函数用于将字符转换为整数值。atoi()函数将字符类型的字符串传递给返回整数数据。
语法
atoi (const char *str);
atoi()函数的算法
- 初始化一个指针型字符数组来存储字符串。
- 创建一个整型变量,用atoi()函数将字符串转换为整型数据,并将其存储在该变量中。
- 打印整型变量的值。
让我们来创建一个程序,在C++编程语言中使用atoi()函数将字符串值转换为整型。
Program4.cpp
#include
#include
using namespace std;
int main ()
{
// declare a constant character array of string
const char *strdata1 = "256";
const char *strdata2 = "16.18";
const char *strdata3 = "1088 Good Bye";
// use atoi() function to pass character type array as arguments
int intdata1 = atoi (strdata1);
int intdata2 = atoi (strdata2);
int intdata3 = atoi (strdata3);
// print the converted values
cout << " The conversion of string to an integer value using atoi(\"" << strdata1 << "\") is " << intdata1 <
输出
The conversion of string to an integer value using atoi("256") is 256
The conversion of string to an integer value using atoi("16.18") is 16
The conversion of string to an integer value using atoi("1088 Good Bye") is 1088