c++ - C++ 字符串终止没有发生?为什么?
问题描述
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
cin.ignore();
while(t--){
string s;
getline(cin,s);
int i =0;
int count =0;
while(i<s.size()){
if(s[i]!=' '){
//cout<<count<<":";
s[count++]=s[i];
}
i++;
}
s[count]='\0';
cout<<s<<endl;
}
return 0;
}
为什么最后 String 不是以 '\0' 结尾的?
对于输入:
2
geeks for geeks
g f g
你的输出是:
geeksforgeeksks
gfgg f g
解决方案
要从字符串中删除一个字符,您应该使用erase
.
推荐阅读
- python - 如何正确安装 Python 依赖项?(也许没有 sudo?)
- cplex - OPL 上的递归求和约束
- nested - 防止文本编辑器中的嵌套列表(froala)
- python - 如何从`ibm_boto3`调用`generate_presigned_post`?
- docker - Docker:错误标志背后的主要原因是什么:0x5001:设备上没有剩余空间
- android - 遍历Arraylist并将联系人添加到arraylist
- amazon-web-services - aws 如何在输入桶中删除大量视频,并在输出桶中填充转码版本
- react-native - 构建成功但使用 adb reverse 连接到开发服务器失败
- c# - 在 C# 中将 JSON 对象反序列化为 DataSet 的新方法是什么?
- java - 编译后的class文件在Java中保留了多少源代码信息?