选择皮肤
jiang
2023-12-27 00:32:50
jiang\n楼主
  主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();

1.data()方法,如:

	string str = "hello";
	const char* p = str.data();//加const  或者用char * p=(char*)str.data();的形式
同时有一点需要说明,这里在devc++中编译需要添加const,否则会报错invalid conversion from const char* to char *,这里可以再前面加上const或者在等号后面给强制转化成char*的类型。
   下面解释下该问题,const char*是不能直接赋值到char*的,这样编译都不能通过,理由:假如可以的话,那么 通过char*就可以修改const char指向的内容了,这是不允许的。所以char*要另外开辟新的空间,即上面的 形式。

2.c_str()方法,如:

	string str=“world”;
	const char *p = str.c_str();//同上,要加const或者等号右边用char*
3.copy()方法,如:
	string str="hmmm";
	char p[50];
	str.copy(p, 5, 0);//这里5代表复制几个字符,0代表复制的位置,
	*(p+5)=‘\0’;//注意手动加结束符!!!