在字符串中添加斜杠

3
我想让一个字符串变成"test/",但我无法在初始字符串后添加斜杠。有任何想法和方法吗?
string imgpath="test";
strcat(imgpath,"/");

这是我目前尝试过的: 我得到了

Error   1   error C2664: 'strcat' : cannot convert parameter 1 from 'std::string' to 'char *'

And another

imgpath="test"+"/";

Error   1   error C2110: '+' : cannot add two pointers

strcat 不应该用于 std::string。使用第二个代码片段 [或者使用 C 风格字符串,但这是一个更差的选择]。 - Mats Petersson
2个回答

5

使用 std::string::operator+=() 代替 strcat()

string imgpath="test";
imgpath += "/";

关于你的第二个例子
imgpath=std::string("test") +"/";

检查第二个例子。 - George Irimiciuc
@GeorgeIrimiciuc:你的第二个例子与此处发布的内容不等价。 - Mat
我知道,但这就是我想要实现的。 - George Irimiciuc
请问@πάντα ῥεῖ,您有这么多问题、答案和徽章,为什么只有一个声望呢? - Dan
@Dan 用户目前在SO上被暂停,因此其声望已设置为1。有关更多信息,请阅读《惩罚日》(https://stackoverflow.blog/2009/04/06/a-day-in-the-penalty-box/)。 - Andrew T.
@AndrewT。啊,好的。谢谢。 - Dan

4

strcat 用于向 c-string 追加内容。您应该使用 string::appendstring::operator+= 来进行操作:

imgpath.append("/");
imgpath += "/";

针对你的第二个问题: "asd" 是一个 char *,而不是一个 std::string。因此它没有一个有用的 + 运算符。这段代码应该像这样:

string x = string("asd") + "xyz";

为什么你不需要将“xyz”转换为字符串呢? - George Irimiciuc
在这种情况下,我们正在执行std::string + char *,这是有用定义的。 char * + char *不是一件事。 - Bill Lynch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接