Aloisia
Mitglied
Hallo, mein Problem ist das folgende: Ich bekomme einen char* number (Länge unterschiedlich) und will alle "führenden 0en" weghaben - Aus "00ef98vgF3" soll "ef98vgF3" werden (aber "0" bleibt "0", "00" wird "0")
Mein Ansatz ist:
l = Berechne die Länge des Strings
wenn l= 1, dann fertig
wenn nicht, dann prüfe ob 1. Zeichen 0 ist
wenn nein, fertig
wenn doch, dann "streiche es"; das heißt erschaffe einen buffer und schreib das 2te Element in das 1te des Buffers usw.
verwende nun die Werte des Buffers und lösche den Buffer
Starte den Test mit der neuen Zeichenkette erneut.
Was mache ich da falsch?
Mein Ansatz ist:
l = Berechne die Länge des Strings
wenn l= 1, dann fertig
wenn nicht, dann prüfe ob 1. Zeichen 0 ist
wenn nein, fertig
wenn doch, dann "streiche es"; das heißt erschaffe einen buffer und schreib das 2te Element in das 1te des Buffers usw.
verwende nun die Werte des Buffers und lösche den Buffer
Starte den Test mit der neuen Zeichenkette erneut.
Was mache ich da falsch?
C++:
int l=strlen(number);
while(l>1){
if (number[0]=='0'){
char* buf=new char[l-1];
for (int i=0;i<l;i++){
buf[i]=number[i+1];
}
number=buf;
delete[] buf;
l=strlen(number);
}
else{
break;
}