c++char转string,将字符串转换为数组

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指针内容的地址也发生变化。