Тема классы

Lizas

Ребята, помогите лабораторки доделать.Введите текст.Удалите все пробелы. с помощью классов написать просят
4 ответа

Lizas

Не представляю, куда здесь запихнуть классы... Вечно преподы просят "написать через классы" то, что писать через классы не нужно совершенно.


Lizas

с помощью классов
#include <iostream>
using namespace std;
 
class String {
    public:
        String(int);
        String(String&);
        ~String(){
            delete []c;
            c=0;
            n=0;
        }
        inline void getline(){
            cin.getline(c, n);
        }
        friend ostream& operator<<(ostream&, String&);
        void delWS();
    private:
        int n;
        char* c;
};
 
String::String(int a){
    n=a;
    c=new char[a];
}
 
String::String(String& a){
    n=a.n;
    char* temp=new char[n];
    for(int i=0; i<n; i++) temp[i]=a.c[i];
    c=temp;
}
 
ostream& operator<<(ostream& o, String& a){
    o<<a.c;
}
 
void String::delWS(){
    char* temp=new char[n];
    for(int i=0, j=0; i<n; i++, j++){
        if(c[i]!=' ') temp[j]=c[i];
        else --j;
    }
    delete []c;
    c=temp;
}
 
int main(){
    String a(50);
    a.getline();
    String b=a;
    b.delWS();
    cout<<b;
}
или так
#include <iostream>
using namespace std;
 
class String: public string {
    public:
        void delWS();
};
 
void String::delWS(){
    for(int i=0; i<this->size(); i++){
        if((*this)[i]==' '){
            this->erase(i, 1);
            --i;
        }
    }
}
 
int main(){
    String s;
    getline(cin, s);
    s.delWS();
    cout<<s;
}


Lizas

Вот и скажите что это без классов
#include <string>
#include <algorithm>
#include <iostream>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
    std::cout<<str<<'\n';
    return 0;
}


Lizas

ForEveR, и ведь не прикопаешься :\