C++中如何将一个字符串对象置空
答案:4 悬赏:30 手机版
解决时间 2021-04-01 07:06
- 提问者网友:沉默的哀伤
- 2021-03-31 18:20
C++中如何将一个字符串对象置空
最佳答案
- 五星知识达人网友:鱼忧
- 2021-03-31 19:02
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显然问的不是这个。
#define M 256
char string[M] = {0};
这样就行了。M是字符数组的大小。足够大就行。
string str=" ";
这个显然错了,因为字符串不为空,而是有个空格。
string str="";
这个确实是空的。但是string是个类。我估计LZ的意思应该是一般的char *吧
而且string的默认构造函数得到的就是空字符串,完全没必要多此一举。
即
string str;
这样得到的就是空字符串。
最后
char *p = "";
这样得到的也是空字符串,但是这个字符串是只读的,即不可更改。虽然我这里没用const char *也能编译通过。但是系统确实不会允许你修改它。
对于那个推荐答案,虽然对于指针来说,这就是置空,但LZ显然问的不是这个。
全部回答
- 1楼网友:山有枢
- 2021-03-31 22:49
char* p; ....; p = (void*)0;即可。
如果是动态分配的内存(使用malloc 或 new),置空之前要将内存释放(free 或 delete)
如果是动态分配的内存(使用malloc 或 new),置空之前要将内存释放(free 或 delete)
- 2楼网友:持酒劝斜阳
- 2021-03-31 21:49
string str=" ";
- 3楼网友:酒者煙囻
- 2021-03-31 20:25
string str="";
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯