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

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

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

1.png

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

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

标签: C++语言, C++语言教程, C++语言技术, C++语言学习, C++语言学习教程, C++语言下载, C++语言开发, C++语言入门教程, C++语言进阶教程, C++语言高级教程, C++语言面试题, C++语言笔试题, C++语言编程思想