替换空格-string与char*互相转换

这道题是一道很简单的题目,但是涉及的知识点,尤其是C和C++之间的小语法,自己很不清楚。记录下来

1. string 转 char*

 string res = "res";     char* str;      strcpy(str,res.c_str()); 

如果是const char* 类型,可以用以下两种方法

const char* cstr = res.c_str();

或者 const char* cstr = res.data();

2.char*转string

char* str = "charStr"; string res= str; 直接赋值即可

3.string 转 char[]

string str = "sddd";

char cstr=[10];

int i;

for(i=0;i<str.length();i++){

        cstr[i] = str[i]; }

cstr[i] = '\0'; //一定要记得在末尾加一个结束字符

4. char[] 转 string

char cstr[9] = "adfa";

string str = cstr; 直接赋值即可

5. strcpy函数:是一种C语言的标准库函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。

原型声明:char *strcpy(char* dest, const char *src);

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

6. c_str()

语法:

const char *c_str();

c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.

这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。

1.c_str是一个内容为字符串指向字符数组的临时指针;

2.c_str返回的是一个可读不可改的常指针;

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 

最好不要这样: char* c; string s = "2312", c = s.c_str();

而应该是: strcpy(c,s.c_str()); 这样才不会出错。 因为s这个对象会被析构掉

题目


code
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容