一、string转char*。
主要有三种要领能够将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’;//注重手动加结束符!!!
二、char * 转string。
能够直接赋值。
string s; char *p = "hello";//直接赋值 s = p;
这里有一点要申明,当声清楚明了string范例变量s后,用printf("%s",s);是会失足的,因为“%s”请求背面的对象的首地点。然则string不是如许的一个范例。所以一定失足。
三、string转char[]
这个因为我们晓得string的长度,能够依据length()函数获得,又能够依据下标直接接见,所以用一个轮回就能够赋值了。
string pp = "dagah"; char p[8]; int i; for( i=0;i<pp.length();i++) p[i] = pp[i]; p[i] = '\0'; printf("%s\n",p); cout<<p;
四、char[]转string
这里能够直接赋值。
char a[] = "abc"; std::string b = std::string(a);
相干引荐:
运用C/C++编写PHP Extension
C++中的extern “C”用法详解
以上就是c++中string&char *&char[]之间怎样转换(示例)的细致内容,更多请关注ki4网别的相干文章!