string to char* and char* to string 玩转 String 和 Char*

简介:

char 类型是c语言中常见的一个数据类型,string是c++中的一个,它的定义为 Strings are objects that represent sequences of characters. 由此可见string是一个char序列的对象,有时候我们经常需要混用这两个数据类型,所以有些常见的错误还是需要避免的:

比如,string的append函数只能加const char类型的,而push_back函数可以加char类型的,也可以直接用 += 来添加char类型的,如果要同时添加两个char, 比如 char a, char b, 则不能写为 str += a + b, 只能老老实实写成 str = str + a + b;

下面我们来看它们之间的相互转换:

 - char* to string

char *cStr = "C++";
std::string Str = std::string(cStr);

- string to char* 

std::string str = "string";
const char *cstr = str.c_str();

由于cstr是const的,不能被修改,如果想要修改的话,可以另拷贝一份再修改:

std::string str = "string";
char *cstr = new char[str.length() + 1];
strcpy(cstr, str.c_str());
// do something here!
delete [] cstr;

本文转自博客园Grandyang的博客,原文链接:string to char* and char* to string 玩转 String 和 Char*,如需转载请自行联系原博主。

相关文章
|
5月前
char[] 转String时的陷阱
char[] 转String时的陷阱
22 1
|
6月前
|
存储 自然语言处理 Java
Java_9_为何要将_String_的底层实现由_char[]_改成了_byte[]_?
Java_9_为何要将_String_的底层实现由_char[]_改成了_byte[]_?
|
8月前
|
Java
Java中 String与基本数据类型,包装类,char[],byte[]之间的转换
Java中 String与基本数据类型,包装类,char[],byte[]之间的转换
55 0
|
9月前
|
存储 Java 索引
String和Char的区别
String和Char的区别
250 1
|
10月前
编写一个程序,链接两个字符串字面常量,将结果保存在一个动态分配的char数组中,重写这个程序,连接两个标准string对象
编写一个程序,链接两个字符串字面常量,将结果保存在一个动态分配的char数组中,重写这个程序,连接两个标准string对象
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
100 0
|
Windows
wchar、char、CString、string
wchar、char、CString、string
103 0
|
JavaScript Java 数据库
UTF-8 GBK UTF8 GB2312之间的区别和关系,Java中String和byte[]间的转换,byte 是怎样转为汉字,汉字转byte的;char与
UTF-8 GBK UTF8 GB2312之间的区别和关系,Java中String和byte[]间的转换,byte 是怎样转为汉字,汉字转byte的;char与
294 0
UTF-8 GBK UTF8 GB2312之间的区别和关系,Java中String和byte[]间的转换,byte 是怎样转为汉字,汉字转byte的;char与
|
存储 测试技术 C语言
C语言中字符串之间的比较【char*】/【string】
C语言中字符串之间的比较【char*】/【string】
838 0
C语言中字符串之间的比较【char*】/【string】
字符串String截取字符char
字符串String截取字符char
105 0
字符串String截取字符char