zoukankan      html  css  js  c++  java
  • 低版本C++ string的万能转换,从long string 之间的转换来看看

    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

    1. long stol(string str)  
    2. {  
    3.     long result;  
    4.     istringstream is(str);  
    5.     is >> result;  
    6.     return result;  
    7. }  


    long 转 string 


    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.   
    10. }  




    太变态的string流


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


    string 转 int

    1. int stoi(string str)  
    2. {  
    3.     int result;  
    4.     istringstream is(str);  
    5.     is >> result;  
    6.     return result;  
    7. }  

    通过!

    string 转float 

    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

    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.   
    10. }  

    通过!

    float 转 string

    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.   
    10. }  

    通过!

    double 转 string

    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.   
    10. }  

    通过!


    * 转string

    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.   
    10. }  

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


    string 转 *

    1. * sto*(string str) //改一下函数名,变量类型,搞定  
    2. {  
    3.     * result;  
    4.     istringstream is(str);  
    5.     is >> result;  
    6.     return result;  
    7. }  
    将*换成想要的类型就可以执行 string转*

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




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


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


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



    粗制滥造,欢迎斧正

  • 相关阅读:
    Redhat7.x静默安装19C客户端
    利用增量备份修复DG备库中的gap>>>>>>>>>>>有新增数据文件
    利用增量备份修复DG备库中的gap>>>>>>>>>>>无新增数据文件
    ORA-01665 control file is not a standby control file
    ORA-01110 ORA-01122 ORA-01110 ORA-01200解决办法
    Zabbix5.0+Grafana可视化部署教程
    RedHat 7.5配置bonding双网卡绑定(转)
    11.2.0.1 RAC环境部分磁盘组无法自动挂载,导致数据库实例无法启动(转)
    11.2.0.1 RAC环境经典bug CRS-4124: Oracle High Availability Services startup failed.
    Git配置SSH及常用命令
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/9011294.html
Copyright © 2011-2022 走看看