zoukankan      html  css  js  c++  java
  • 字符串与数字相互转换

    1.数字to字符串

    1.1、方法一(利用<sstream>的stringstream,可以是浮点数)

    #include <iostream>
    #include <sstream>
    using namespace std;
    int main()
    {
        double x;
        string str;
        stringstream ss;
        cin>>x;
        ss<<x;
        ss>>str;
        cout<<str;
        return 0;
    }

    1.2、方法二(利用<sstream>中的to_string方法,浮点数会附带小数点后六位,不足补零,不推荐浮点数使用)

    #include <iostream>
    #include <sstream>
    using namespace std;
    int main()
    {
        double x;
        string str;
        cin>>x;
        str=to_string(x);
        cout<<str;
        return 0;
    }

     

    2.字符串to数字

    2.1、方法一(利用<sstream>的stringstream,可以是浮点数)

    #include <iostream>
    #include <sstream>
    using namespace std;
    int main()
    {
        double x;
        string str;
        stringstream ss;
        cin>>str;
        ss<<str;
        ss>>x;
        cout<<x;
        return 0;
    }

     

    2.2、方法二(利用<string>中的stoi()函数,其中还有对于其他类型的函数,如stod(),stof()等,根据类型选取)

    //如果遇到非法输入,stoi会自动截取最前面的数字,直到遇到不是数字为止
    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        int x;
        string str;
        cin>>str;
        x=stoi(str);
        cout<<x;
        return 0;
    }

    2.3、从前往后逐个变换

    int a=0;
    for(int i=0;i<strlen(chr);i++)
    {
            a=a*10+(chr[i]-'0');
    }
    

     

    2.4、从后往前使用pow逐个变换

    #include <cmath>
    int count=0,a=0;
    for(int i=strlen(chr);i>=0;i--)
    {
            a+=pow(10,count++)*(chr[i]-'0');  
    }

     

    2.5、【string字符串转double/int】stod函数

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        double x;
        string str;
    
        cin>>str;
        x=stod(str);
        cout<<x;
        return 0;
    }
    

     

    2.6、附【stoi和atoi区别】

    stoi的形参是const string*,而atoi的形参是const char*。c_str()的作用是将const string*转化为const char*。  

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        int x,y,z;
        string str;
        char chr[100];
        cin>>str;
        cin>>chr;
        x=stoi(str);
        y=atoi(chr);
        z=atoi(str.c_str());
        cout<<x<<endl;
        cout<<y<<endl;
        cout<<z<<endl;
        return 0;
    }
    

      

      

      

     

    天晴了,起飞吧
  • 相关阅读:
    ASP.NET 安全认证(二)——灵活运用 Form 表单认证中的 deny 与 allow 及保护 .htm 等文件(转)
    对ASP.NET MVC项目中的视图做单元测试
    java多线程编程——线程同步之同步代码块
    php 删除目录以及目录下的所有文件
    webuploader 一个页面多个上传按钮 实现【亲测可用】
    设计模式单例模式
    html meta手机端常用参数
    java多线程编程——线程同步之同步函数
    MySQL 如何按照指定字符串进行排序
    工厂模式
  • 原文地址:https://www.cnblogs.com/jianqiao123/p/14370096.html
Copyright © 2011-2022 走看看