一.利用stringstream类
1. 字符串到整数
    stringstream sstr(str);
    int x;
    sstr >> x;(即从sstr中提取数据)
2. 整数到字符串
    stringstream sstr;
    int x;
    sstr << x;
    string str = sstr.str();
缺点:处理大量数据转换速度较慢。stringstream不会主动释放内存,如果要在程序中用同一个流,需要适时地清除一下缓存(用stream.str("")和stream.clear()).
 
测试代码:

经测试,两者速率确实差很多。
当num为10000000时,输出结果为:
82602
7144
 
二.C中的sprintf、sscanf函数
1. 可以用sprintf函数将数字转换成字符串
例如:
         int H, M, S;
         string time_str;
         H=seconds/3600;
         M=(seconds%3600)/60;
         S=(seconds%3600)%60;
         char ctime[10];
         sprintf(ctime, "%d:%d:%d", H, M, S); // 将整数转换成字符串
         time_str=ctime; // 结果
 
2. 与sprintf对应的是sscanf函数, 可以将字符串转换成数字
    char str[] = "15.455";
     int i;
     float fp;
     sscanf( str, "%d", &i ); // 将字符串转换成整数 i = 15
     sscanf( str, "%f", &fp ); // 将字符串转换成浮点数 fp = 15.455000
     //打印
     printf( "Integer: = %d ", i+1 );
     printf( "Real: = %f ", fp+1 );
     return 0;
 
    输出如下:
    Integer: = 16
     Real: = 16.455000
 
三.C标准库atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long long 型
1. itoa函数
char *itoa(int value, char *string, int radix);
 
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
* string: 保存转换后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
备注:该函数的头文件是"stdlib.h"
 
2. atoi
  C语言库函数名: atoi
  功 能: 把字符串转换成整型数
  函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。
  原型: int atoi(const char *nptr);
  需要用到的头文件: #include <stdlib.h>

C/C++ 字符串与数字相互转换的更多相关文章

  1. C.【转】C语言字符串与数字相互转换

    1.gcvt 把浮点数转成字符串 - CSDN博客.html(https://blog.csdn.net/dxuehui/article/details/52791412) 1.1. 函数名: gcv ...

  2. C语言字符串与数字相互转换

    在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...

  3. 【转】C语言字符串与数字相互转换

    在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...

  4. C/C++中字符串与数字相互转换

    数字转字符串: 用C++的streanstream: #include <sstream> #Include <string> string num2str(double i) ...

  5. ZT:C/C++ 字符串与数字相互转换

    转载地址:https://www.cnblogs.com/happygirl-zjj/p/4633789.html 一.利用stringstream类 1. 字符串到整数     stringstre ...

  6. C/C++中字符串与数字转换

    本文总结了四种字符串和数字相互转换的方法,方法一和方法二是c++中的方法,方法三和方法四是C语言库函数的方法. 方法一:c++11中string中添加了下面这些方法帮助完成字符串和数字的相互转换 st ...

  7. 转:IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字

    IE兼容模式下 SCRIPT1028: 缺少标识符.字符串或数字例如下面一段代码 var a = {    x: 1,    y: 2,};alert(a.x);如果在IE的兼容性视图(IE7文档模式 ...

  8. 剑指Offer面试题:35.将字符串转换为数字

    一.题目:将字符串转换为数字 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不能使用atoi或者其他类似的库函数. 二.代码实现 (1)考虑输入的字符串是否是NULL.空字符 ...

  9. Oracle 把秒转成时分秒格式(hh24:mm:ss);检测字符串是否是数字;字符串转换为数字

    不说废话,贴代码: CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS /*把秒转成时分秒格式 auth lzpo ...

随机推荐

  1. mysql数据库补充知识3 查询数据库记录信息之多表查询

    一 介绍 准备表 company.employeecompany.department 复制代码 #建表 create table department( id int, name varchar(2 ...

  2. 剑指offer 面试38题

    面试38题: 题:字符串的排列 题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,ca ...

  3. Hibernate学习---关联关系映射

    关联关系是用到的最多的一种关系,非常重要,在内存中反映为实体关系,映射到DB中主键外键关系,实体间的关联,即对外键的维护,关联关系的发生,即对外键数据的改变. 在这里就不赘述什么是外键什么是主键了. ...

  4. offsetHeight+scrollHeight+clientHeight

    ch 窗口可见区域高度 :ch = padding + height(height不是所有内容的高度,是样式定义的高度) oh border以内的内容高度: oh = border + padding ...

  5. iframe与父窗口之间数据互相获取

    Js/Jquery获取iframe中的元素 博客分类: jquery javascript jquery  在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或 ...

  6. HTML系列(3)基本的HTML标签(二)

        本节继续介绍HTML的常用标签.     (1)input标签之文本域(text和textarea).密码域(password): <!DOCTYPE html> <html ...

  7. HTTP学习笔记02-HTTP报文格式之概述

    HTTP学习笔记02-HTTP报文格式之概述 HTTP学习笔记02-HTTP报文格式之概述 HTTP报文格式 报文的语法 起始行 首部 实体部分 学习一个协议感觉最有意思的就是看包结构…在我看来这是唯 ...

  8. linux之下载工具wget

    常用格式:wget options URL -b,  --background        启动后转入后台执行 -c,  --continue               接着下载没下载完的文件 - ...

  9. Qt发布程序

    一.作用 将Qt软件打包发布成绿色exe,在任意非Qt环境下运行 二.找到我们软件所依赖动态库 使用Qt的windeployqt.exe(在Qt安装目录的bin下面找)--! 1.新建文件夹,在里面放 ...

  10. springmvc 学习笔记1

    1.新建JAVAWEB程序,并导入jar包到工程.(IOC,SPRING MVC两部分) a.复制JAR包到lib文件夹下. b.选上所有jar包,右键后选"Bulid Path" ...