2011-06-01 156 views
0

我試圖將一個字符串分配給一個新的字符串變量。現在我很新很長,但更容易理解的解釋對我來說是最好的。不管怎麼說,怎麼我試着去做到這一點是這樣的:C++將一個字符串的元素分配給一個新的字符串

string test = "384239572"; 
string u = test[4]; 

的什麼我嘗試做完整的代碼是這樣的:

#include <iostream> 
#include <string> 
#include <sstream> 
using namespace std; 

int main() 
{ 
string test = "384239572"; 
string u = test[4]; 
int i = 0; 
istringstream sin(u); 
sin >> i; 
cout << i << endl; 
return 0; 
} 

雖然它似乎在我把上部抱怨在上面。那麼如何從一個字符串中取出一小部分字符串,並將其分配給一個新的字符串呢?提前感謝!如果你知道任何好的鏈接或任何有關這個,那也將不勝感激!

回答

3

您可以使用字符串的一個constructors

string u(1,test[4]); 

編輯:1表示的次數重複[4]

在你的代碼試圖分配char性格測試到一個string對象。

+0

好吧,謝謝你,是什麼在這個1雖然做?你也可以向我解釋爲什麼我的方法不起作用?這樣我可以對未來的參考有最大的理解? :D – samuraiseoul 2011-06-01 04:01:40

+1

它在他鏈接的構造函數文檔中:'string(size_t n,char c);' 內容被初始化爲一個字符串重複形成的字符串n次。 – cgmb 2011-06-01 04:03:49

+0

所以,當我使用測試[]它變成一個字符,不再是一個字符串? – samuraiseoul 2011-06-01 04:21:08

2

string類有一個方法substr()應該在此有用:

// Substring consisting of 1 character starting at 0-based index 4 
string u = test.substr(4, 1); 

這很好地推廣到任何長度的子串。

4

使用字符串,

#include <iostream> 
#include <string> 
#include <sstream> 
using namespace std; 

int main() 
{ 
    string test = "384239572"; 
    string u = test.substr(4,1); 
    cout << u << endl; 
    return 0; 
} 
相關問題