Xóa khoảng trắng thừa trong chuỗi

code này em viết để xóa khoảng trắng thừa mà sao sau khi chạy thì ở cuối chuỗi vẫn có khoảng trắng vì em in ra “end” thấy nó cách xa với chuỗi. Ai giúp em với ạ

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string a;
    getline(cin,a);
    int n = a.length();
    int i;
    for (i=0;i<n;i++)
    {
        if (a[i]==' ' && a[i+1]==' ')
        {
            for (int j=i;j<n;j++)
            {
                a[j]=a[j+1];
            }
            i--;
        }
    }
    if (a[0]==' ')
        for (int j=0;j<n;j++)
            {
                a[j]=a[j+1];
            }
    cout << a;
    cout << "end";
    return 0;
}

Đoạn này là xóa khoảng trắng đầu chuỗi, cuối chuỗi thì tương tự.

1 Like

Bạn chỉ cần dùng

For(int i=0;i<n;++i)
While(a[i]==‘ ’){
      For(int j=i;j<n;++j) a[j]=a[j+1];
      - - n ; 
}
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?