C++中如何将一个字符串对象置空

2025-02-24 01:48:52
推荐回答(4个)
回答1:

LS全部都是坑爹答案,要么没明白LZ意思,要么就是错的。

#define M 256
char string[M] = {0};

这样就行了。M是字符数组的大小。足够大就行。
string str=" ";

这个显然错了,因为字符串不为空,而是有个空格。
string str="";

这个确实是空的。但是string是个类。我估计LZ的意思应该是一般的char *吧
而且string的默认构造函数得到的就是空字符串,完全没必要多此一举。

string str;
这样得到的就是空字符串。

最后
char *p = "";
这样得到的也是空字符串,但是这个字符串是只读的,即不可更改。虽然我这里没用const char *也能编译通过。但是系统确实不会允许你修改它。

对于那个推荐答案,虽然对于指针来说,这就是置空,但LZ显然问的不是这个。

回答2:

char* p; ....; p = (void*)0;即可。
如果是动态分配的内存(使用malloc 或 new),置空之前要将内存释放(free 或 delete)

回答3:

string str=" ";

回答4:

string str="";