常用的转换方法:

  1. 流转换
  2. STL标准函数库中函数转换

流转换

流转换主要是用到了<sstream>库中的stringstream类。

通过stringstream可以完成基本类型间的转换,

 #include<sstream>

 using namespace std;

 template<typename out_type, typename in_value>

 out_type convert(const in_value & t){

     stringstream stream;

     stream << t;

     out_type result;

     stream >> result;

     return result;

 }

STL函数转换

标准函数库里包含了基本类型间转换的函数,在库<stdlib.h>中。

基本的函数:

itoa():将整型值转换为字符串。

ltoa():将长整型值转换为字符串。

ultoa():将无符号长整型值转换为字符串。

gcvt():将浮点型数转换为字符串,取四舍五入。

ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。

fcvt():指定位数为转换精度,其余同ecvt()。

atof():将字符串转换为双精度浮点型值。

atoi():将字符串转换为整型值。

atol():将字符串转换为长整型值。

strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。

strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。

strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

每个函数的参数不尽相同,比如

char* itoa(int value, char* string, int radix)

含义:将整数value转换成字符串存入string, radix为转换时所用基数(保存到字符串中的数据的进制基数 2 8 10 16)

int atoi(const char* nptr)

含义:跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

如此看来,这种方法就没有流转换灵活,方便。

实例:

(使用流转换)

#include <iostream>
#include <sstream> using namespace std; template<typename out_type, typename in_value>
out_type convert(const in_value & t){
stringstream stream;
stream << t;
out_type result;
stream >> result;
return result;
} int main()
{
char xxx[] = "";
int i = ;
i = convert<int>(xxx);//字符串转换为整型
cout << i;
}

结果:

(使用STL函数)

#include <iostream>
#include <stdlib.h> using namespace std; int main()
{
int i = ;
char x[];
itoa(i, x, );
cout << x << endl; int n;
char* y = "";
n = atoi(y);
cout << n << endl;
}

结果:

C++ 各种基本类型间的转换的更多相关文章

  1. C++指针类型间强制转换

    深入理解指针类型间的转换 C++中指针的强制转换 强制类型转换(int).(int&)和(int*)的区别 内存中的地址 地址的本质就是一串0和1的机器代码,内存中的地址没有明确数据类型,但地 ...

  2. C++处理char*,char[],string三种类型间的转换

    前言 在C和C++中,有一个相当重要的部分,就是字符串的编程描述.在学C的时候,很多人习惯了char[],char*表示法,直到遇见了C++后,出现了第三者:string.这时候,很多初学者就会在这三 ...

  3. mfc 类型间的强制转换

    一. static_cast运算符 用法:static_cast < type-id > ( expression ) 该运算符把expression 转换为type-id类型,但没有运行 ...

  4. Java基础之8个基本类型及基本类型间转换

    8种基本数据类型 Java语言有8种基本数据类型, 分别用于存储整数.浮点数.字符数据和布尔类型数据.需要注意的是: 现在所介绍的仅仅是基本数据类型,后续还会介绍很多非基本数据类型.基本数据类型如图 ...

  5. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

  6. JAVA_SE基础——9.基本数据类型间的转换

    前面我已经教会大家基本的数据类型进行了介绍,   然后这篇文章,我来介绍下,基本数据类型的转换. Java中有两种类型转换形式,分别是自动类型转换和强制类型转换. Step1.自动类型转换. 自动类型 ...

  7. Java中String和byte[]间的转换浅析

    Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实 ...

  8. Python常见字符编码间的转换

    主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5.Python bytes类型 前 ...

  9. C#常用数据类型间的转换

    数据类型有很多种,数据类型间的转换也是有很多的方法,如果不细心整理的话等到用的时候再查就会显得很浪费时间,所以决心整理出这篇博文.主要是讲解常用数据类型之间的转换方法以及常见数据类型所占字节数. 字节 ...

随机推荐

  1. ActiveMQ安全配置

    1.activeMQ管理后台用户名.密码的设置 管理后台地址http://localhost:8161/admin 默认用户名密码admin admin 端口默认是8161,且服务采用的是服务器,所以 ...

  2. java中IO流小解

    下面这张图列出了java中一些处理流: java中根据操作对象的不同可以分为:字节流和字符流. 首先我们先表示一下什么叫节点流和处理流: 节点流:可以从或向一个特定的地方(节点)读写数据.如FileR ...

  3. Android换肤技术总结

    原文出处: http://blog.zhaiyifan.cn/2015/09/10/Android%E6%8D%A2%E8%82%A4%E6%8A%80%E6%9C%AF%E6%80%BB%E7%BB ...

  4. Servlet-Cookie源码分析 源码环境:Tomcat8

    最近在学习servlet的一些实现细节,阅读了Cookie的源码. Cookie本质上是服务器发送给客户端(主要是浏览器)的一个会话临时数据. 其源码注释文档的说明: Creates a cookie ...

  5. 个人作业-Week2

    第一部分  调研, 评测 运行平台 win 8 软件版本:微软必应词典桌面版 3.5.2 BUG标题:必应背单词无法发音 BUG详细描述:如图,左边为必应词典该单词的搜索,可以发音,而右边必应背单词中 ...

  6. javascript中正则实现读取当前url中指定参数值方法。

    getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  7. 【翻译】XV6-DRAFT as of September 3,2014 第0章 操作系统接口

    操作系统接口 操作系统的任务是让多个程序共享计算机(资源),并且提供一系列基于计算机硬件的但更有用的服务.操作系统管理并且把底层的硬件抽象出来,举例来说,一个文字处理软件(例如word)不需要关心计算 ...

  8. 使用XHR2或Jsonp实现跨域以及实现原理

    我们直接使用XMLHttpRequset请求外部接口 会发现 报这个错误 其实浏览器成功发送请求并拿回了数据  只是浏览器的同源策略 禁止了获取  在xhr2 服务器端支持跨域 需要在响应头增加 Ac ...

  9. redis并发问题

    redis中的并发问题 使用redis作为缓存已经很久了,redis是以单进程的形式运行的,命令是一个接着一个执行的,一直以为不会存在并发的问题,直到今天看到相关的资料,才恍然大悟~~ 具体问题实例 ...

  10. coreseek操作

    开启服务$  /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf 重新索引: /usr/local/coresee ...