c++11 数值类型和字符串的相互转换

string和数值类型转换

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

    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转换为各种类型的数据:

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

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

    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之间的相互转换变得很方便,如代码:

    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;
时间: 2024-11-02 23:31:22

c++11 数值类型和字符串的相互转换的相关文章

C++.【转】C++数值类型与string的相互转换

1.C++数值类型与string的相互转换 - JohnGu - 博客园.html(https://www.cnblogs.com/johngu/p/7878029.html) 2. 1.数值类型转换为string 1.1使用函数模板+ostringstream 使用函数模板将基本数据类型(整型.字符型.实型.布尔型)转换成string. 1 2 3 4 5 6 7 8 9 10 11 12 //ostringstream对象用来进行格式化的输出,常用于将各种类型转换为string类型 //os

C#DateTime.ToString 格式化时间字符串和数值类型转换为字符串

我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34,如果要换成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到:DateTime.ToString的方法. 一.DateTime.ToString格式模式 下面列出了DateTime.ToString(string format) 中 format 参数.这些模式是区分大小写的:例如,识别"MM",但不识别"mm". d         

SpringMVC中的返回值问题之二返回数值类型和字符串类型

返回数值类型和字符串类型 需要导入依赖 当引入Jackson-databind-2.5.1.jar时自动引入Jackson-annotations-2.5.0.jar <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <a

loadrunder之脚本篇——int类型和字符串的相互转换

字符串转化为int型变量 Action2() { int j = 0; j = atoi("12345");  //将字符串变为整形 lr_output_message("%d", j); return 0; } 运行结果: Starting action Action2. Action2.c(8): 12345 Ending action Action2. int型变量转化为字符串 Action2() { int i = 12345; char *pt = NUL

编写一个字符串排序程序,对一个字符串的数值进行从小到大的排序,要求使用包装类对数值类型的字符串转换成整型进行排序

package cn.lyun.zzj; import java.util.Arrays; public class WrapperTest { private static final String SPACE_SEPARATOR = " "; //不可以放在一个类里面. public static void main(String[] args) { String numStr = "20 78 9 -7 88 36 29"; System.out.printl

JavaScript基础 空字符串转为数值类型 Number()

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaSE 日期类型与字符串类型的相互转换

package cn.zwq.convert; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期类型与字符串类型的相互转换 * * @author zwq * @version V1.0 * @Date 2016年10月11日 下午8:28:04 * */ public class DateConvert { public static void

oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel

数值类型与字节数组之间的相互转换

我们在上文 如何选择使用字符串还是数字呢? 中阐述了使用数值类型的好处,那么问题来了,如何在数值类型与字节数组之间相互转换呢? 我们先看看单个数值类型和字节数组之间的转换,我们以Integer类型为例: public static byte[] intToBytes(int x) {     ByteBuffer intBuffer = ByteBuffer.allocate(Integer.BYTES);     intBuffer.putInt(0, x);     return intBu