正如你可能从我的问题中得知的那样,我是一个c ++新手
我不确定将一个字符串的值复制到另一个字符串的正确方法是什么。
例如,我这样做了:
std::string x = "this is x";
std::string y = "this is y";
x = y;
没有错误,但这没有做任何事情..
我知道有字符串:: copy ...但似乎这个函数需要缓冲区大小等等。这很烦人..
有一种简单的方法可以在c ++中完成这项工作吗?
由于
UPDATE !!
抱歉,我觉得我的答案太简单了...... 这是我的情况:
class MyClass {
std::string m_str = "OLD STRING";
}
void CopyString(MyClass& c, std::string x) {
c.m_str = x;
}
int main() {
MyClass c;
CopyString(c, "NEW STRING");
std::cout << c.m_str << std::endl; // prints "OLD STRING"!!
}
答案 0 :(得分:5)
您的代码
std::string x = "this is x";
std::string y = "this is y";
x = y;
是正确的,并将y
变量的值复制到x
变量。
你的断言
“这没有做任何事情。
- 幸福 - 不正确。
答案 1 :(得分:0)
当您执行x = y
时,它会将y
的值复制到x
,因此,x
将this is y
答案 2 :(得分:0)
虽然它不是最好的实现(get / set方法会更好),但你需要将m_str设为public。使用类时,如果不设置它,则默认情况下所有变量都设置为private。将其更改为此,它应该编译并运行。
class MyClass {
public:
std::string m_str = "OLD STRING";
};
编辑:您在课程结束时也忘记了分号并复制了方法。