019
06.09.2003, 23:48 Uhr
Pablo
Supertux (Operator)
|
Stimmt, ich hab nicht auf den Operator= aufgepasst, sorry! Dann geht nicht, was ich da erzählt hab, ist ja logisch. Und Klassen kenn ich doch, ich programmiere gerne ohne Klassen, deshalb hab ich ja den Operator= übersehen.
Wenn du hast:
C++: |
char x; x= "123456789";
|
Dann hast du ein "Array von char" der Länge 10 mit folgenen Elementen '1', '2', '3', ..., '9', '\0'
Dann könntest du folgendes machen:
C++: |
longdez longdez::operator=(char* Ztext) { for(int i=0; Ztext[i] != '\0'; ++i) { this->Ziffer[i] = Ztext[i]; }
// hier eine Funktion, die ein char* invertiert
strcpy(Ausgabe,this->Ziffer); }
|
oder du machst deine eigene strlen Funktion (meiner Meinung nach sinnvoller)
C++: |
int mystrlen(const char* buffer) { int x=0; while(buffer[x] != '\0')x++; return x+1; } longdez longdez::operator=(char* Ztext) { int x = 32; for(int i=mystrlen(Ztext); i>=0; --i) this->Ziffer[--x] = Ztext[ i ];
strcpy(Ausgabe,this->Ziffer); }
|
Mir fällt nix mehr ein. mystrlen läuft in O(n), und da die Zuweisung weniger 32 Zeichen hat, ist das kein Problem. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 06.09.2003 um 23:50 Uhr von Pablo Yanez Trujillo editiert. |