C++ string与其他类型的转换

1\基本类型转为string

nt a = 100, b = 200;
string A = to_string(a) + to_string(b);//100200

2\string转cstring*

  声明如下:

const char * string::data(); //以字符数组的形式返回字符串内容但不主动添加'\0'
const char * string::c_str();   //返回一个以'\0'结尾的字符数组

  例子如下:

char* B = (char*)(A.c_str());
cout<<B<<endl;//100200
B[2] = '1';
cout<<B<<endl;//101200
cout<<A<<endl;//101200
 

  需要注意避免出现以下问题:

string str = "hello world!";
const char * cstr = str.data();
printf("%p\r\n",&str[0]);   //006ffec0
printf("%p\r\n",cstr);      //006ffec0,这里还是对应上的
str.reserve(1000);
printf("%p\r\n",&str[0]);   //00cfa580
printf("%p\r\n",cstr);      //006ffec0
cstr = str.data();
printf("%p\r\n",cstr);      //00cfa580

3\string转cstring

  声明如下:[2]

size_t string::copy(char *,size_t len,size_t pos =0)//len可取string::npos

  例子如下:

string str = "hello world!";
char buff[50];
size_t length = str.copy(buff,string::npos,0);
buff[length] = '\0';
cout<<buff<<endl;

4\cstring转string

  其实就是构造函数:

string s(cstr) //将C字符串作为s的初值
string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。

5、string转基本类型

sto? : ?可为 d f l ld ll ul ull
  或见sstream的使用[3]

6、参考链接

[1] C++之string类型详解
[2] c++ string转c 字符数组的方法
[3] C++ sstream的使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值