1樓:冰凍了你呢
將string型別轉換為字元陣列char
char buf[10];
string str("abcdefg");
length = str.copy(buf, 9);
buf[length] = '\0';
或者char buf[10];
string str("abcdefg");
strcpy(buf, str.c_str());//strncpy(buf, str.c_str(), 10);
字元陣列轉化成string型別
char ch = "abcdefg";
string str(ch);//也可string str = ch;
或者char ch = "abcdefg";
string str;
str = ch;//在原有基礎上新增可以用str += ch;
c_str函式的返回值是const char*的,不能直接賦值給char*,
所以就需要我們進行相應的操作轉化,下面就是這一轉化過程。
c++語言提供了兩種字串實現,其中較原始的一種只是字串的c語言實現。
與c語言的其他部分一樣,它在c+的所有實現中可用,
我們將這種實現提供的字串物件,歸為c-串,每個c-串char*型別的。
標準標頭檔案包含操作c-串的函式庫。
這些庫函式表達了我們希望使用的幾乎每種字串操作。
當呼叫庫函式,客戶程式提供的是string型別引數,
而庫函式內部實現用的是c-串,因此需要將string物件,
轉化為char*物件,而c_str()提供了這樣一種方法,
它返回一個客戶程式可讀不可改的指向字元陣列的指標。
例:#include
#include
using std::string;void main()
string add_to="hello!";
//std::cout
const char*cfirst = add_to.c_str();
const char*csecond = add_on.c_str();
char*copy = new char[strlen(cfirst) + strlen(csecond) + 1];
strcpy( copy, cfirst);
strcat( copy, csecond);
add_to = copy;
delete copy;
2樓:風若遠去何人留
#include
#include
#include
using namespace std;
int main()
3樓:戴奇
#include
using namespace std;
int main()
{string s="sdjsd";
char a[100];
for(int i=0;i
執行結果:
c++如何將string 轉換為char*
4樓:匿名使用者
char* p=new char[a.size()];
strcpy(p,a.data());
delete p;
不能通過a.data()和a.c_str()返回的指標修改string的內容,但像上面拷貝一份內容就可以
5樓:好程式設計師
你可以將char型別變數宣告為一個陣列,如b:array[0..100] of char,這相干b中就可以儲存多個字元了,其轉換如下例:
var a:string; b:array[0..
100] of char;char 是字元型別,string 是字串型別,也就是說,char型別的值只有一個字元,而string型別的值卻可以有多個字元(其容量好象為2g)。將char轉換為string時,直接應用a:=b即可(a為string型別,b為char型別),但結**可想而知,string型別變數a的值只是一個字元。
begin …… a:=b; //將char陣列轉換為string strpcopy(b,a); //將string轉換為char ……end;也就是說,將string型別的變數賦值給char型別的變數時,不克不及直接賦值,必須用strpcopy函式,而將char型別的變數賦值給string型別的變數時可以直接賦值。
6樓:匿名使用者
1.直接在構造string時建立。
char data = ;
string str = new string(data);
2.string有方法可以直接轉換。
string.valueof(char chr)就可以。
如: char cha = ;
string n = string.valueof(cha);
public class test}
7樓:匿名使用者
1、const char *p = a.data();
2、const char *p = a.c_str();
3、char *p = const_cast(a.c_str());
8樓:篤俠
a.c_str()就是char*型別了。
9樓:好名字可以讓你的朋友更容易記住你呦
好像沒有轉換成char* 啊,我試了一下 不給力啊
c 中,如何把long轉換成string
使用baistringstream會方便du一點。zhi include include include using namespace std int main stringstream是好方法。不過c 裡包含iostream頭就行了,這裡stdio.h沒用 用庫函式 atol include i...
c裡面十六進位制怎麼轉換為字元
printf 數字代表來 的字源母是 c n num 直接列印 include int main void 測試通過。請問c 程式設計裡用字串讀進一個16進位制數後,怎樣轉化為10進位制數?include include include using namespace std int main el...
C窗體程式裡面怎麼把string型別強制轉換為int型別的
直接把字串和整數相加了,得到的結果仍是字串,要先把label中的字串轉為整數再與1相加得3,過程如下 初始化label值得 label1.text 1.2 int ivalue 0 能正常轉為整數 if int32.tryparse label1.text.trim out ivalue 不能正常轉...