Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;将字符串的元素指定给新字符串_C++_String - Fatal编程技术网

C++ C++;将字符串的元素指定给新字符串

C++ C++;将字符串的元素指定给新字符串,c++,string,C++,String,我试图将一段字符串分配给一个新的字符串变量。现在我很新,时间长了,但更容易理解的解释对我来说是最好的。不管怎么说,我是这样做的: string test = "384239572"; string u = test[4]; 我尝试做的全部代码如下: #include <iostream> #include <string> #include <sstream> using namespace std; int main() { string test =

我试图将一段字符串分配给一个新的字符串变量。现在我很新,时间长了,但更容易理解的解释对我来说是最好的。不管怎么说,我是这样做的:

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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串测试=“384239572”;
字符串u=测试[4];
int i=0;
istringstream sin(u);
罪恶>>我;

cout您可以使用其中一个字符串

编辑:1表示重复字符测试的次数[4]


在代码中,您试图将
char
分配给
string
对象。
string
类有一个方法
substr()
,在这里很有用:

// Substring consisting of 1 character starting at 0-based index 4
string u = test.substr(4, 1); 
这很好地概括了任意长度的子字符串。

使用子字符串

#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;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串测试=“384239572”;
字符串u=测试子字符串(4,1);

好吧,谢谢,这里面的1是做什么的?你能解释一下为什么我的方法不起作用吗?这样我就可以最大限度地理解了,以备将来参考吗?它在他链接的构造函数文档中:
string(size\t n,char c);
内容被初始化为一个字符串,由字符c重复n次构成。因此,当我使用test[]时,它变成了一个字符,不再是一个字符串。我还注意到,当我使用string u;u=test[1];它可以工作,但如果我尝试在一行中执行它,它就不会工作。为什么?字符串被重载,以支持将字符分配给字符串。
#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;
}