21xrx.com
2024-12-22 20:24:10 Sunday
登录
文章检索 我的文章 写文章
C++ 教程:数字转换成字符串
2023-07-10 02:03:55 深夜i     --     --
C++ 教程 数字 字符串 转换

在C++编程中,数字和字符串之间的转换是一项非常基础且必要的操作。通常情况下,我们需要将一个数字转换为一个字符串来进行输出或处理。在这篇文章中,我们将介绍如何将数字转换为字符串以及字符串转换为数字的方法。

将数字转换为字符串

C++中提供了很多方法将数字转换为字符串。可以使用流(stream)或者直接调用库函数的方法实现。下面分别介绍方法:

方法一:使用流

使用流的方法将数字转换为字符串是一种比较常见的做法。具体实现如下:


#include <iostream>

#include <sstream>

using namespace std;

int main()

  int num = 1234;

  stringstream ss;

  string str;

  ss << num;

  ss >> str;

  cout << str << endl; // 输出 "1234"

  return 0;

这里我们用到了 stringstream 类,它是一个可以将各种类型数据转换为字符串的流类。首先我们定义了一个整型 num,并初始化为 1234。接着定义了两个字符串类型变量 ss 和 str,ss 是一个流对象,它将数字 num 插入到流中。最后 ss 通过 >> 操作符重载运算符取出流中的值赋值给 str,最终 str 的值就是将数字 num 转换后得到的字符串 "1234"。

方法二:使用库函数

除了使用流的方法,C++也提供了很多库函数可以将数字转换为字符串,比如 sprintf or itoa 函数。下面给出使用 sprintf 函数将数字转换为字符串的例子:


#include <cstdio>

#include <cstring>

int main()

{

  int num = 1234;

  char str[20];

  sprintf(str, "%d", num);

  printf("%s\n", str); // 输出 "1234"

  return 0;

}

其中 str 是一个字符数组, %d 是指定格式为整数,sprintf 函数会将 num 的值转换为字符串,并存储到 str 中。在这里特别提醒一下,str 数组需要预先定义好大小,足够存储转换后的字符串。

将字符串转换为数字

和将数字转换为字符串相反,将字符串转换为数字也是十分必要的。C++ 中同样提供了一些库函数,下面两种方法均可以实现将字符串转换为数字。

方法一:使用 stoi 函数

stoi 函数可以将字符串转换为整型数,实例如下:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "1234";

  int num = stoi(str);

  cout << num << endl; // 输出 1234

  return 0;

}

这里我们先定义一个字符串类型的变量 str,并赋值为 "1234",接着使用 stoi 函数将字符串 str 转换为整型数 num。最后输出 num 的值,即可得到转换后的整数。

方法二:使用 atof 函数

与 stoi 函数不同,atof 可以将字符串转换为浮点数,实例如下:


#include <iostream>

#include <cstdlib>

using namespace std;

int main()

{

  char * str = "3.1415926";

  double num = atof(str);

  cout << num << endl; // 输出 3.14159

  return 0;

}

这里通过将“3.1415926”字符数组传入 atof 函数中,将其转换为浮点数 num,并输出执行结果。

总结

通过本篇文章,我们了解了如何将数字转换为字符串以及字符串转换为数字的方法。需要特别注意的是,在实际编写代码时,需要根据具体的应用场景选择合适的转换方法,并且需要及时处理转换失败的情况,防止程序出错。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复