string相关问题
为什么这样写可以string name;
string nameseed = "abcde";
int score=0;
for (int i = 0; i < 5; i++)
{
name = "选手";
name +=nameseed;
Person p(name, score);
v.push_back(p);
}
这样却不行 string name;
string nameseed = "abcde";
int score=0;
for (int i = 0; i < 5; i++)
{
name ="选手"+nameseed;
Person p(name, score);
v.push_back(p);
} 下面的一直在累加。上面的第六行循环一次后会把后缀去掉 平淡最真 发表于 2022-6-13 18:06
下面的一直在累加。上面的第六行循环一次后会把后缀去掉
请问,name="xxx"+(string)a;
这种会一直累加吗 lianquke 发表于 2022-6-13 18:36
请问,name="xxx"+(string)a;
这种会一直累加吗
我看错了{:1_896:},不会 改成这样:name = std::string("选手") + nameseed;
name ="选手"+nameseed;// 这里等号后面实际是 const char* + char, 所以也就是指针的偏移, 而不是字符串追加 ryosga 发表于 2022-6-13 20:39
改成这样:name = std::string("选手") + nameseed;
name ="选手"+nameseed;// 这里等号后面实际是 ...
大佬我刚开始学不是很理解他为什么实际表示的是这个 const char*
我应该去看什么能了解这个 这个学c++基础就可以了, 主要是多练手, 踩的坑多了就明白了 SLCoCo 发表于 2022-6-14 00:13
大佬我刚开始学不是很理解他为什么实际表示的是这个 const char*
我应该去看什么能了解这个
因为string里面的每一个索引表示的字符都是char类型,
所以我们对string进行单个位置上字符匹配的时候,都是这样写
if(string == '发'){
恭喜发财(666);
}
而不是string == ”发“
单引号表上的是char *
双引号表示的是const char * or string::std
页:
[1]