Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa class-om

[es] :: C/C++ programiranje :: C/C++ za početnike :: Problem sa class-om

[ Pregleda: 2561 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kushwais

Član broj: 160006
Poruke: 30
*.6.11.vie.surfer.at.



Profil

icon Problem sa class-om10.06.2008. u 10:23 - pre 193 meseci
Imam sledeci problem , class Person sastoji se iz jedne "instanzvariable" instanz promenljive ?? koja treba Ime , Prezime i Password da prihvati. Resio sam to tako da posle Imena stavim " : ", Prezimena isto " : " i naravno po zelji metoda print da ispise , Ime , Prezime , password ili sve zajedno . Evo ga kod i za sada to funkcionise ...
Code:
class Person {
      char name [160];
      public:
             Person (char *a);
             void print(void);
             void print_vorname();
             void print_nachname();
             void print_kennwort();
             };
      Person::Person(char *a){
             strcpy(name,a);
             for (int i=0;i<=strlen(name);i++){
                 if(name[i]== ' ')
                 name[i]=':';     
                                               }
                 
                             }
      void Person::print(void)   {// Ime ,prezime , pass
           for(int i=0;i<=strlen(name);i++){
                   if (name[i]==':')
                   cout<<' ';
                   else
                   cout<<name[i];           }
                   cout<<endl;
                                  }
      void Person::print_vorname(){// Ime
           cout<< "Vorname lautet ";
           for (int i=0;i<=strlen(name);i++){
               if (name[i]!=':')
               cout<<name[i];
               if (name[i]==':')
               break;                        }
               cout<<endl;
                                  }
      void Person::print_nachname(){// Prezime
           cout<< "Nachname lautet ";
           int start;
           for (int i=0;name[i]!=':';i++){
               if (name[i]==':')
                start=i;                 }
               for (int a=start+1;name[a]!=':';a++){
                   cout<< name[a] ;                  }
                   cout<<endl;
               
                                          
                                    }
      void Person::print_kennwort(){// Pass
           cout<< "Kennwort lautet ";
           int sta;
           for (int i=strlen(name);name[i]!=':';i--){
               if(name[i]!=':')sta=i;               }
               for(;name[sta]!='\0';sta++){
               cout<< name[sta] ;  }
               cout<<endl;


Problem je u sledecem ... Ako bih probao np. John:Slavisa Markovich Agent:007 :) da koristim !

Resenje bi bilo da ako slucajno u stringu dodje do " : " bilo u Imenu ili Prezimenu ili vec u Passwordu da od ":" napravim "::" , tako da bi ":" i dalje razdvajalo Ime , prezime ... a "::" pokazivalo da se radi o recimo Imenu samo , i prilikom ispisa od "::" opet ispise samo jednostavno ":". A prilikom ispisa ":" koje razdvajaju Ime i np. Prezime ostane prazno

Probao sam string& insert () ili samo insert () ali mi ne uspeva .

Hvala unapred !!
 
Odgovor na temu

Kushwais

Član broj: 160006
Poruke: 30
*.6.11.vie.surfer.at.



Profil

icon Re: Problem sa class-om10.06.2008. u 16:10 - pre 193 meseci
Moguce je da sam bas nejasan bio :)

Kako da u string name ubacim ':' ako u stringu naidjem na ':'... znaci da od ':' odradim string ':'':'....

Probao sam sa ... string& insert(size_type pos,const char* a) a i druge metode ali ne ide :(
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: Problem sa class-om11.06.2008. u 02:27 - pre 193 meseci
Mozes ovako (nisam ubacio u klasu jer mislim da to znas i sam)
Pretvara Test:name u Test::name
Code:

#include <iostream>
using namespace std;

int main()
{
    char name[256]="Test:name";
    // odavde
    int n=0;
    char tempbuffer[256];
    while(name[n]!=0) // nula je na kraju svakog stringa
    {
        if(name[n]==':' && name[n-1]!=':') // ako je trenutni znak : i nije i predhodni :
        {
            strcpy(tempbuffer,&name[n+1]); // kopiramo sve posle : u tempbuffer
            name[n+1]=':'; // stavljamo : posle prvog : , sad imamo ::
            strcpy(&name[n+2],tempbuffer); // i kopiramo tekst ponovo ovde, posle ::
        }
        n++; // inkrementiramo n
    }
    // dovde
    cout << name << endl;
    return 0;
}

 
Odgovor na temu

Kushwais

Član broj: 160006
Poruke: 30
*.6.11.vie.surfer.at.



Profil

icon Re: Problem sa class-om23.06.2008. u 13:51 - pre 192 meseci
Hvala puno, ovo funkcionise
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: Problem sa class-om23.06.2008. u 15:22 - pre 192 meseci
Citat:
Eurora3D Team:
Code:

...
    int n=0;
...

    if(name[n]==':' && name[n-1]!=':') 
    {
      ...
    }
}


Khm...
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.microsoft.com.



+6 Profil

icon Re: Problem sa class-om23.06.2008. u 17:31 - pre 192 meseci
Tja, to će da crkne samo ako string počinje sa ":", a ko normalan još počinje reči dvotačkom
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: Problem sa class-om23.06.2008. u 17:36 - pre 192 meseci
^ Onaj ko voli da brlja po $PATH-u? :)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: Problem sa class-om24.06.2008. u 02:07 - pre 192 meseci
@NastyBoy ne brljaj po PATH-u :)
Pusti kod kroz kompajler pre komentarisanja ...

 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Problem sa class-om

[ Pregleda: 2561 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.