#include <iostream>
#include <string>
using namespace std;
void chuli(string a)
{
a.erase(0,2);
}
int main()
{
string a = "012345";
a = chuli(a);
cout << a;
}
我是C ++的初学者,我想知道为什么在这个函数之后,这个字符串没有改变。这是关于命名空间的吗?
答案 0 :(得分:3)
字符串按值传递,因此您的操作将应用于对象的副本。 如果需要修改值,则需要通过指针或引用传递它:
void chuli(string &a)
{
a.erase(0,2);
}
void chuli(string *a)
{
a->erase(0,2);
}