zoukankan      html  css  js  c++  java
  • 数值类型和字符串的相互转换

    转载:

    1.https://www.cnblogs.com/gtarcoder/p/4925592.html   比较实用

    string和数值类型转换

        c++11提供了to_string方法,可以方便的将各种数值类型转换为 字符串类型:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    std::string to_string(int value);
    std::string to_string(long int value);
    std::string to_string(long long int value);
    std::string to_string(unsigned int value);
    std::string to_string(unsigned long long int value);
    std::string to_string(float value);
    std::string to_string(double value);
    std::wstring to_wstring(int value);
    std::wstring to_wstring(long int value);
    std::wstring to_wstring(long long int value);
    std::wstring to_wstring(unsigned int value);
    std::wstring to_wstring(unsigned long long int value);
    std::wstring to_wstring(float value);
    std::wstring to_wstring(double value);

        还提供了stoxxx方法,将string转换为各种类型的数据:

    1
    2
    3
    4
    std::string str = "1000";
    int val = std::stoi(str);
    long val = std::stol(str);
    float val = std::stof(str);

        c++11还提供了字符串(char*)转换为整数和浮点类型的方法:

    1
    2
    3
    4
    atoi: 将字符串转换为 int
    atol: 将字符串转换为long
    atoll:将字符串转换为 long long
    atof: 将字符串转换为浮点数

    宽窄字符转换

        c++11增加了unicode字面量的支持,可以通过L来定义宽字符 
    std::wstring wide_str = L"中国人"; //定义了宽字符字符串 
        将宽字符转换为窄字符需要用到condecvt库中的std::wstring_convert。 
        std::wstring_convert使std::string和std::wstring之间的相互转换变得很方便,如代码

     
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    std::wstring wide_str = L"中国人";
    std::wstring_convert<std::condecvt<wchar_t, char, std::mbstate_t>>
    converter(new std::codecvt<wchar_t, char, std::mbstate_t>("CHS");
    std::string narrow_str = converter.to_bytes(wide_str);
    std::wstring wstr = converter.from_bytes(narrow_str);
    std::cout << narrow_str << std::endl;
    wcout.imbue(std::locale("chs"));
    std::wcout << wstr << std::endl;
    std::cout << wstr.size() << " " << wstr.length() << endl;
    std::cout << narrow_str.size() << " " << narrow_str.length() << endl;
  • 相关阅读:
    Win10升级后无法删除Windows.old文件夹
    修改Window服务器虚拟内存位置
    快速修改Windows系统密码命令
    本机无法连通虚拟机但是虚拟机之间可以连通问题记录
    Windows删除文件夹下的指定格式文件(递归删除)
    Xshell连接SqlPlus无法使用退格、删除键
    Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
    关于接口设计的一些思考
    SpringCloud 在Feign上使用Hystrix(断路由)
    Docker-Compose入门
  • 原文地址:https://www.cnblogs.com/MCSFX/p/12882331.html
Copyright © 2011-2022 走看看