char *进入字符串,可以直接指定值。 不能分别指定int和c字符类型的值。
字符串S1 (demo1);
string s1=’demo ‘;
char *p=’demo ‘;
s1=p;
从string迁移到char*有三种方法: c_str (、data )和copy
c_str ) )返回以“\0”结尾的c样式的字符数组
data ) )返回数组,不自动增加“\ 0”
复制) )将字符复制到新内存中。 必须分配并保存新内存。
前两个函数的原始内容发生变化,地址指向的内容也发生变化。 使用copy时,不会发生这种问题。 (参照例3 )
const char *p=s.data (;
const char * p=s.c_str (;
char*p=newchar[s.Length(1]);
s.copy(p,string:npos );
p[s.length () ]=0;
是的,释放p
示例3 :
STD :3360 strings1=’ demo 123456\n\0 ‘; const char *p1=s1.c_str (; const char *p2=s1.data (; s1=’345 ‘;
s1的内容发生变化时,p1和p2指针内容的地址也发生变化。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。