C++ 将字符串转换为整数

C++ 将字符串转换为整数

本节将讨论使用C++编程语言将给定的字符串数据转换为整数的不同方法。在编程中,有一些情况或实例需要将某个数据转换为另一种类型,其中一种情况就是将字符串转换为整数数据。

例如,我们有一个数值字符串” 143 “,我们想将其转换为数值类型。我们需要使用一个将字符串转换为整数并将数值数据返回为143的函数。现在,我们将学习每种方法,这些方法有助于在C++编程语言中将字符串数据转换为整数。

C++ 将字符串转换为整数

在C++编程语言中将字符串数据转换为整数的不同方法。

  1. 使用stringstream类
  2. 使用stoi()函数
  3. 使用atoi()函数
  4. 使用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()函数的算法

  1. sscanf()函数属于stringstream类,所以我们需要将该类导入到我们的程序中。
  2. 初始化一个常量字符串str。
  3. 创建一个整数变量来存储转换后的字符串为整数值。
  4. 将字符串变量传入sscanf()函数,并将sscanf()函数赋值给整数变量以存储函数生成的整数值。
  5. 打印整数值。

让我们考虑一个示例,使用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()函数的算法

  1. 初始化字符串变量以存储字符串值。
  2. 然后,创建一个整数类型的变量,使用stoi()函数将字符串转换为整数类型数据并存储。
  3. 打印整数变量值。

让我们编写一个程序,使用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()函数的算法

  1. 初始化一个指针型字符数组来存储字符串。
  2. 创建一个整型变量,用atoi()函数将字符串转换为整型数据,并将其存储在该变量中。
  3. 打印整型变量的值。

让我们来创建一个程序,在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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程