string 转 long

那必须是万年atoi(),不过得配合c_str()使用!

[plain] view plain copy
  1. #include <string>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. using namespace std;
  5. int main ()
  6. {
  7. string a = "1234567890";
  8. long b = atoi(a.c_str());
  9. cout<<b<<endl;
  10. return 0;
  11. }

注意:atoi()在 stdlib.h

但是,这不是今天的重点!!!更加变态的方法,用String stream

[cpp] view plain copy
  1. long stol(string str)
  2. {
  3. long result;
  4. istringstream is(str);
  5. is >> result;
  6. return result;
  7. }

long 转 string

[cpp] view plain copy
  1. string ltos(long l)
  2. {
  3. ostringstream os;
  4. os<<l;
  5. string result;
  6. istringstream is(os.str());
  7. is>>result;
  8. return result;
  9. }

太变态的string流

测试测试所有的基础类型转换

string 转 int

[cpp] view plain copy
  1. int stoi(string str)
  2. {
  3. int result;
  4. istringstream is(str);
  5. is >> result;
  6. return result;
  7. }

通过!

string 转float

[cpp] view plain copy
  1. float stof(string str)
  2. {
  3. float result;
  4. istringstream is(str);
  5. is >> result;
  6. return result;
  7. }

通过!

string 转double

[plain] view plain copy
  1. double stod(string str)
  2. {
  3. double result;
  4. istringstream is(str);
  5. is >> result;
  6. return result;
  7. }

通过!

int 转 string

[cpp] view plain copy
  1. string itos(int i)
  2. {
  3. ostringstream os;
  4. os<<i;
  5. string result;
  6. istringstream is(os.str());
  7. is>>result;
  8. return result;
  9. }

通过!

float 转 string

[cpp] view plain copy
  1. string ftos(float f)
  2. {
  3. ostringstream os;
  4. os<<f;
  5. string result;
  6. istringstream is(os.str());
  7. is>>result;
  8. return result;
  9. }

通过!

double 转 string

[cpp] view plain copy
  1. string dtos(double d)
  2. {
  3. ostringstream os;
  4. os<<d;
  5. string result;
  6. istringstream is(os.str());
  7. is>>result;
  8. return result;
  9. }

通过!

* 转string

[cpp] view plain copy
  1. string *tos(* i)     //改一下函数名,改一下类型,搞定
  2. {
  3. ostringstream os;
  4. os<<i;
  5. string result;
  6. istringstream is(os.str());
  7. is>>result;
  8. return result;
  9. }

将*换成想要的类型就可以执行 *转string

string 转 *

[cpp] view plain copy
  1. * sto*(string str) //改一下函数名,变量类型,搞定
  2. {
  3. * result;
  4. istringstream is(str);
  5. is >> result;
  6. return result;
  7. }

将*换成想要的类型就可以执行 string转*

也可以重载函数,达到万能函数转换

这些测试完全是自己不想写项目,偷懒写点文章安慰自己!囧~

记得包含头文件#include <sstream>

总结:使用string 流和标准io流其实本身就是流,一个原理的,不同调用方法。

粗制滥造,欢迎斧正

低版本C++ string的万能转换,从long string 之间的转换来看看的更多相关文章

  1. matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换

    一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...

  2. C++string,char* 字符数组,int类型之间的转换

    string.int 常见类型之间相互转换 int & string 之间的转换 C++中更多的是使用流对象来实现类型转换 针对流对象 sstream实现 int,float 类型都可以实现 ...

  3. String、ANSIString、PChar及TBytes之间的转换 BytesOf move stringof

    一.string转为ansistring 1.直接赋值 (有警告)2.ansistring()类型强制转换.(无警告) 二.ansistring 转为string 1.直接赋值 (有警告)2.stri ...

  4. 【转】char*,string,CString,int,char[]之间的转换

    CString 头文件#include <cstring>.CString 转char * CString cstr;  ..data(),返回没有”/“的字符串数组..c_str(),返 ...

  5. Java基础——数据类型之间的转换

    Java数据类型分为三大类,即布尔型.字符型和数值型.其中数值型又分为整型和浮点型.Java的基本数据类型(8种)为布尔型boolean(1字节):字符型char(2字节):整型byte(1字节).s ...

  6. 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)

    Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围:http: ...

  7. Swift数字类型之间的转换

    Swift数字类型之间的转换Swift是一种安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换.一.整型之间的转换在C和Objective-C等其他语言中,整型之间有两种转换方法:从小范围数 ...

  8. 《从零开始学Swift》学习笔记(Day 15)——请注意数字类型之间的转换

    原创文章,欢迎转载.转载请注明:关东升的博客 在C.Objective-C和Java等其他语言中,整型之间有两种转换方法: 从小范围数到大范围数转换是自动的: 从大范围数到小范围数需要强制类型转换,有 ...

  9. string转object-兼容低版本浏览器(eval实现)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. webpack 兼容低版本浏览器,转换ES6 ES7语法

    ES6,ES7真的太棒了,async +await+Promise,让我阅读代码的时候不用再从左拉到右了(异步太多,一层套一层真的太头痛) 但是有个问题,打包后低版本浏览器运行不了,还有我用了一些混淆 ...

随机推荐

  1. 【BZOJ2124】等差子序列 树状数组维护hash值

    [BZOJ2124]等差子序列 Description 给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pLen<=N ...

  2. 【BZOJ1822】[JSOI2010]Frozen Nova 冷冻波 几何+二分+网络流

    [BZOJ1822][JSOI2010]Frozen Nova 冷冻波 Description WJJ喜欢“魔兽争霸”这个游戏.在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀 ...

  3. 转载别人的DLL DEll研究

    昨日,编了个DLL和EXE来进行了下测试,exe通过lib静态联编dll,来调用它的导出类,当改变DLL中导出类的结构(eg.成员变量的顺序等),从新发布DLL而不从新联结编译EXE,就会造成错误的执 ...

  4. 160727、自定义hibernate主键生成策略生成字符串+数字自增长

    需求:需要自增长注解如MyId0001.MyId0002.MyId0003 实现:实现这个接口org.hibernate.id.IdentifierGenerator 一.MyIdGenerator. ...

  5. 第四课(2)——mysql配置参数讲解

    *****************general***************** user 启动mysql domain的用户 port 数据库端口号 socket 数据库socket文件的路径 p ...

  6. Phonetic Symbols:2个半元音:[w] ,[j]

    2个半元音音标发音技巧与单词举例 原文地址:http://www.hlyy.in/1243.html 2个半元音音标发音技巧与半元音单词举例 [w]  发音技巧: 嘴唇张开到刚好可以含住一根吸管的程度 ...

  7. 聊天系统 websocket 直播聊天

    websocket http://kai.yilaizhibo.com/js/controller.js http://kai.yilaizhibo.com/js/controller.js $(fu ...

  8. 洛谷 P2300 合并神犇

    洛谷 听说这题可以\(n^2\)水过去,不过这里介绍一种\(O(n)\)的做法. \(f[i]\)为第\(1-i\)位合并的次数. \(pre[i]\)为第\(1-i\)位最末尾的数. \(j\)为满 ...

  9. django_上传文件

    要求:  写一个文件上传:如果文件名字重复,不要覆盖,并且放到项目根路径的media文件夹下 def upload(request): if request.method == "GET&q ...

  10. Hibernate缓存原理

    对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键. 简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等, 但随之带来的就是数据访问 ...