2011-11-04 228 views
2

我即將用我的鍵盤彈出屏幕,因爲我無法將字符轉換爲字符串,或者只是將字符串添加到字符串中。C++將char轉換爲字符串

我有一個字符數組,我想挑選我在數組中選擇的字符來創建一個字符串。我怎麼做?

string test = "oh my F**king GOD!" 
const char* charArray = test.c_str(); 

string myWord = charArray[0] + charArray[4]; 

多數民衆贊成我得到了它。請幫忙。

+1

或者你可以做'string myWord; myWord + = charArray [0]; myWord + = charArray [4];'Cat PlusPlus的方式更好,我只是說你也可以使用串聯。 –

回答

1

無需轉換隻是c_str:

string test = "oh my F**king GOD!"; 
string myWord; 
myWord += test[0]; 
myWord += test[4]; 
5
string myWord; 
myWord.push_back(test[0]); 
myWord.push_back(test[4]); 

這裏您不需要使用c_str()

+0

還有'basic_string&operator =(charT c)'。我想我會用它。就像'myWord + = test [0]'。 –

+0

@Alf:錯過函數聲明中的「+」號? –

+0

@Tomalak:是的,謝謝。讀者可以插入它。 ;-) –

0

您是否以某種方式限制使用C++函數?因爲,對於這個目的,我用老的C函數一樣的sprintf

+2

**對所有路人:**請採取與此建議正好相反的方式!恰恰相反,當你因爲某些遺留原因而被限制在某個地方時,你應該[一般]只使用C函數。 –

0

您還需要需要記住的是一個C++字符串是非常相似的向量,而C字符串只是字符數組。向量有一個operator[]和一個push_back方法。 Read more here您使用push_back並且不要轉換爲c字符串。 所以你的代碼應該是這樣的:

string test = "oh my F**king GOD!" 
string myWord; 
myWord.push_back(test[0]); 
myWord.push_back(test[4]); 
+0

C++字符串不是一個向量。矢量是一個矢量;一個字符串是一個字符串。它是'operator []'。 –

+0

@ TomalakGeret'kal更好嗎? –

+0

是的,好多了! :) –