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* 啊,我試了一下 不給力啊 使用baistringstream會方便du一點。zhi include include include using namespace std int main stringstream是好方法。不過c 裡包含iostream頭就行了,這裡stdio.h沒用 用庫函式 atol include i... printf 數字代表來 的字源母是 c n num 直接列印 include int main void 測試通過。請問c 程式設計裡用字串讀進一個16進位制數後,怎樣轉化為10進位制數?include include include using namespace std int main el... 直接把字串和整數相加了,得到的結果仍是字串,要先把label中的字串轉為整數再與1相加得3,過程如下 初始化label值得 label1.text 1.2 int ivalue 0 能正常轉為整數 if int32.tryparse label1.text.trim out ivalue 不能正常轉...c 中,如何把long轉換成string
c裡面十六進位制怎麼轉換為字元
C窗體程式裡面怎麼把string型別強制轉換為int型別的