2011-06-01 117 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; 
} 
相关问题