文章目录

  • 一、num转string
    • 1.1 int型数字转字符串
    • 1.2 float/double型数字转字符串(不补0)
  • 二、string转num
    • 2.1 使用stringstream类处理
    • 2.2 使用\处理
  • 三、char[]转num
  • 四、char[]与string的相互转换
  • 五、字符串拼接
    • 5.1 string + string
    • 5.1 string + char*
  • 参考文献

一、num转string

头文件

#include<string>
#include<typeinfo>

1.1 int型数字转字符串

int num = 123;
string num2str = to_string(num);
cout << typeid(to_string(num) == typeid(string) << endl;  // true

1.2 float/double型数字转字符串(不补0)

头文件

#include<sstream>
double num = 123.56;  // float同理
stringstream sstream;
sstream << num;
string num2str = sstream.str();  // num2str = "123.56"
cout << typeid(sstream.str() == typeid(string) << endl;  // true
sstream.clear();  // 若在用一个流中处理大量数据,则需手动清除缓存,小数据或不同流可忽略

缺点处理大量数据转换速度较慢stringstream不会主动释放内存,如果要在程序中用同一个流,需要适时地清除一下缓存,用stream.clear()

二、string转num

2.1 使用stringstream类处理

  • 字符串转int/float/double型数字(不补0)
string str = "456.78";
double num;        // float同理,int需要str为整数,否则报错
stringstream sstream(str);
sstream >> num;    // num = 456.78
cout << typeid(num == typeid(double) << endl;  // true

2.2 使用<string>处理

头文件

#include<string>
string str = "456.78";
double num = stod(str);   // num = 456.78
cout << typeid(num == typeid(double) << endl;  // true

下面给出常用的转换方法,完整转换方法请见《C++中的字符串(String)和数值转换》

转换数字的类型 默认 完整参数 功能 全参例子
int stoi(s) stoi(s,p,b) 把字符串s从p开始转换成b进制的int stoi(s, 0, 10)
float stof(s) stof(s,p) 把字符串s从p开始转换成float
double stod(s) stod(s,p) 把字符串s从p开始转换成double
long stol(s) stol(s,p,b) 把字符串s从p开始转换成b进制的long stol(s, 0, 10)

三、char[]转num

头文件

#include<cstdio>
char ch[100] = "-456.78";
// 注:atof(ch)只返回double数字,因此需要float可以自行转换成float
double num = atof(ch);   // num = -456.78
cout << typeid(num == typeid(double) << endl;  // true

下面给出常用的转换方法,完整转换方法请见《C++中的字符串(String)和数值转换》

转换数字的类型 默认 功能
int atoi(s) 将字符串s[n]转换为整型值
double atof(s) 将字符串s[n]转换为double
long atol(s) 将字符串s[n]转换为long

四、char[]与string的相互转换

  • 4.1 字符数组char[]转换string(直接赋值即可)
char ch[100] = "Hellow World";
string str = ch;  // str = "Hellow World"
cout << typeid(str == typeid(string) << endl;  // true
  • 4.2 字符数组string转换char[]
string str = "Hellow World";
char ch[100] = {0};
for (int i=0;i < str.length();i++)ch[i] = str[i];
cout << ch << endl;  // ch = "Hellow World"

五、字符串拼接

5.1 string + string

string str1 = "aaa";
strint str2 = "bbb";
cout << str1 + str2 << endl; // "aaabbb"
cout << str1 + "bbb" << endl; // "aaabbb"

5.1 string + char*

string str1 = "aaa";
char* str2 = "bbb";
cout << str1 + str2 << endl; // "aaabbb"

持续积累中~

参考文献

[1] C++ 字符串与字符数组详解
[2] C++中的字符串(String)和数值转换

C++ 11字符数组/字符串/数字转换/字符串拼接相关推荐

  1. 用java解决 《数字转换字符串》

    目录 题目 输入描述: 输出描述: 示例1 输入 输出 说明 算法模型: 从i到n,i∈(0,n): 模型特点: 用这个模型的题目有: 递归转动态规划: 思路分析: 暴力递归: 动态规划: 样例推导: ...

  2. c语言数字转化为字母表,c语言字符串 数字转换函数大全

    转载:c语言字符串 数字转换函数大全 字符串数字转换到底什么意思呢: 字符串和数字的编码不一样,字符串是按照国际标准ASCII码表进行编码,每个数字都是一个8位的ASCII码(也就是一个字节大小):而 ...

  3. c语言字符串 数字转换函数大全

    最近学数据结构老是做实验 常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下 方便以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转 ...

  4. 用字符数组存放和处理字符串

    字符串 字符串是用双引号括起来的字符序列.比如,"China".字符串常量会在字符序列末尾添加'\0'作为结尾标记.字符串在内存中按照串中字符的排列顺序存放,并在末尾会添加'\0' ...

  5. C语言数字转换字符串

    转载自:https://www.cnblogs.com/bluestorm/p/3168719.html C语言itoa()函数和atoi()函数详解(整数转字符C实现) C语言提供了几个标准库函数, ...

  6. 字符数组的用法及字符串处理函数的用法

    字符型数据是以字符的ASCII码存储在存储单元中的,一般占一个字节. 1.如何定义字符数组 char s[100]; 在字符数组中一个元素存放一个字符. 下面我们来说一下字符串处理函数的用法,在使用字 ...

  7. linux c socket ip地址 字符串 数字 转换 inet_addr inet_ntoa

    目录 0.转换函数 1.介绍inet_addr函数 2.介绍inet_ntoa函数 3.一般使用总结 inet_addr 将字符串形式的IP地址 -> 网络字节顺序  的整型值 inet_nto ...

  8. Go中数字转换字符串的正确姿势

    在许多语言中,你可以轻松地将任何数据类型转换为字符串,只需将其与字符串连接,或者使用类型转换表达式即可.但是,如果你在Go中尝试执行似乎很明显的操作(例如将int转换为字符串),你不太可能获得预期的效 ...

  9. 字符数组的初始化及字符串的使用

    文章目录 字符数组的定义 字符数组初始化 字符串存放 '\0'的作用 字符数组的定义 同整型数组一样: 一维数组定义:char c[10]; 二维数组定义:char ch[3][4]; 字符数组初始化 ...

最新文章

  1. python随机抽取样本1500个_(python)随机抽样
  2. 作者赠送的《我的第一本c++书》收到啦
  3. keras_1_Keras_Model简介
  4. 其实python面向对象3分钟就可以入门(14)
  5. “智慧灯杆”的应用和解决方案
  6. NOIP模拟测试20「周·任·飞」
  7. 【牛客 - 373C】抓捕盗窃犯(连通图,思维,dfs 或 并查集)
  8. (二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs
  9. 安卓随机通话记录_几款安卓amp;苹果虚拟来电软件,带你快速逃离尬聊现场,留有情面慰人心扉...
  10. C#使用Aforge对uvc协议摄像头亮度属性的更改
  11. 百度文库免费下载(附:分享一些有趣的网站,最后一个可以免飞下载百度文库)
  12. 用gin+xorm+docker编写Online Judge后端
  13. NGUI完美高性能无限滚动
  14. 第一类与第二类曲面积分的关系与变换
  15. 第十一届“认证杯”数学中国数学建模国际赛 (2022 CERTIFICATE AUTHORITY CUP INTERNATIONAL
  16. 黑马点评--优惠卷秒杀
  17. vue实现页面全屏和退出全屏
  18. 竞斗云2.0刷机-编程器刷入opboot
  19. (二)第一步(安装和基本使用) | 普罗米修斯(Prometheus)
  20. M3U8文件格式说明及解决大量拼接ts文件时长不对问题

热门文章

  1. python实现自动拨打电话_python 实现手机自动拨打电话的方法(通话压力测试)
  2. 强化学习笔记-01强化学习介绍
  3. 作为一个前端开发工程师,你会怼人吗?
  4. 罗克韦尔(AB)PLC与MySQL/SQLServer/PostgreSQL数据库对接
  5. 7.28 C幸运数字
  6. kindle长期未使用,界面显示电池感叹号
  7. 基于帕累托的多目标遗传算法优化的原理与 Python 实现
  8. 国内洗地机品牌排行榜前十名有哪些?洗地机十大品牌排行榜介绍
  9. Excel快速入门02
  10. 走完离职流程心力交瘁,血泪教训:年终奖兑换期权要慎重,期权变现有风险,加班认定最管用的是加班申请记录!...