当前位置: 首页 > news >正文

整数转字符串

描述

用递归法将一个整数 n 转换成字符串。例如,输人 483,应输出字符串"483”。

n的位数不确定,可以是任意位数的整数。

输入

输入一个整数

输出

输出一个字符串

输入样例 1 

483

输出样例 1

483

代码一(如下):

#include <iostream>
using namespace std;
int main()
{int a;cin >> a;int number = a;       char word[10];int count = 0;while (a != 0)        //得出输入的数字的位数{a = a / 10;count++;}for (int i = count; i >0; i--)     //将整型转换为字符串{word[i] =number % 10+'0';      //'0'的ASCII码为48,当(number%10)+48则得到(number%10)的ASCII码,然后储存在字符数组中number = number / 10;         //此处为逆序储存,最后要顺序输出}for (int i = 1; i <= count; i++)    //输出字符串{cout << word[i];}return 0;
}

代码二(如下):采用stringstream

#include<iostream>
#include<string>
#include<sstream>
using namespace std;
string change(int i)      // 将int 转换成string
{stringstream s;s << i;          //将i放入s中return s.str();    //用str()将stringstream类型转换为string类型
}
int main() {int i;cin >> i;string ss = change(i);cout << ss;return 0;
}

代码三(如下):采用to_string( )函数

#include <iostream>
#include <string>
using namespace std;
int main()
{int a;cin >> a;string b;b = to_string(a);cout << b;return 0;
}

 

问题点:

①:字符数据在内存中的存储形式及其使用方法:

将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的ASCII码放到存储单元中。

既然字符数据以ASCII码存储的,它的存储形式就与整数的存储形式类似。这样,在C++中字符型数据和整型数据之间就可以通用。一个字符数据可以赋给一个整型变量,反之,一个整型数据也可以赋给一个字符变量。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。

②:头文件<sstream>

 <sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。

        <sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf 方式),避免了缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符号的问题。相比 C 编程语言库的数据类型转换,<sstream> 更加安全、自动和直接。

此部分选自C++ stringstream_Sakuya__的博客-CSDN博客

③:stringstream类

1)创建一个stringstream类型变量,向对象输入其他类型的数据("<<"为插入运算符,如代码二中是将“i”插入“s”当中)

2)stringstream 可以将存储于内部的字符串输出,需要调用 str() 函数,不可直接输出:

cout << ss.str() << endl;

// cout << ss << endl;         // 错误,不可直接输出

str()函数可以将int类型、float类型或是stringstream类型的数据转换为string类型的数据。

此部分参考C++ stringstream 简单使用_原来是枫哥呀!的博客-CSDN博客 

④:to_string( )函数(包含在头文件<string>中)

将整型数据转换为字符串,返回值为转换完毕的字符串。

http://www.lryc.cn/news/106911.html

相关文章:

  • 【ARM Coresight 系列文章 2.4 - Coresight 寄存器:DEVARCH,DEVID, DEVTYPE】
  • Could not locate supplied template: react+ts搭建
  • fatal error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
  • xml文件转成yolo中的txt文件
  • [Linux]手把手教你制作进度条小程序
  • centos 重启 nginx 的三种方式
  • 跨境新手必看,海外推广的7个方式
  • SpringBoot之logback-spring.xml详细配置
  • P2141 [NOIP2014 普及组] 珠心算测验
  • [回馈]ASP.NET Core MVC开发实战之商城系统(四)
  • Vue.js常见错误处理包含代码
  • Go项目实现日志按时间及文件大小切割并压缩
  • 容器化的好处
  • TPlink DDNS 内网穿透?外网访问设置方法
  • 以CS32F031为例浅说国产32位MCU的内核处理器
  • 享元模式(Flyweight)
  • Cilium系列-11-启用带宽管理器
  • 无人机自动返航的关键技术有哪些
  • Vision Transformer (ViT):图像分块、图像块嵌入、类别标记、QKV矩阵与自注意力机制的解析
  • Mybatis:一对多映射处理
  • HTML+CSS+JavaScript:全选与反选案例
  • Python 程序设计入门(001)—— 安装 Python(Windows 操作系统)
  • 【redis】创建集群
  • linux 配置nacos遇见的问题及解决办法
  • 小程序开发趋势:探索人工智能在小程序中的应用
  • 基于埋点日志数据的网络流量统计 - PV、UV
  • cuda入门demo(2)——最基础的二方向sobel
  • 软件外包开发的后台开发语言
  • 自动驾驶感知系统-全球卫星定位系统
  • 数据结构 | 基本数据结构——队列