首页 > 解决方案 > 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

标签: c++stl

解决方案


要从字符串中删除一个字符,您应该使用erase.

请参阅remove-erase idiom


推荐阅读