Bestimmte Zeichen aus String löschen?
-
Hallo.
Wie kann ich denn bestimmte Zeichen aus einem String löschen und den String (also das char-Array) danach verkürzen?
Ich habe vor, eine EAN im Format 1-123456-123456 als Parameter beim Programmaufruf mitzugeben und danach weiterzuverarbeiten.
Nun sollen die '-' rausgeschmissen werden.
Das Array soll dabei von Größe 16 (mit \0) zu Größe 14 schrumpfen.
-
Schau mal bei den Funktionen im Link:
http://www.cplusplus.com/reference/clibrary/cstring/Eine oder mehrere sollten dir die Lösung ermöglichen.
MfG f.-th.
-
bastardbychoice schrieb:
Hallo.
Wie kann ich denn bestimmte Zeichen aus einem String löschen und den String (also das char-Array) danach verkürzen?
Ich habe vor, eine EAN im Format 1-123456-123456 als Parameter beim Programmaufruf mitzugeben und danach weiterzuverarbeiten.
Nun sollen die '-' rausgeschmissen werden.
Das Array soll dabei von Größe 16 (mit \0) zu Größe 14 schrumpfen.Dein Array braucht nicht zu schrumpfen, du kannst von Beginn an ein Array mit 14 Bytes anlegen und alle Zeichen bis auf das '-' reinkopieren, das ist alles.
-
im prinzip so:
char * MyStringCpyAusnahme(char *dest, const char *soure, const char ausnme){ int i, idx=0; for(i=0; i<=strlen(source); i++, idx++){ if(source[i]!=ausnme) // überprüfung ob zeichen aus bei source[i] ungleich der ausnahme dest[idx]=source[i]; // wenn ja, dann kopiere else // wenn nicht idx--; // reduziere idx um lücke in dest zu schliessen } return dest; // muss nicht sein, hab mir diesen stil vom prof. abgeschaut =b }
-
char s[]="1-123456-123456",*p; printf("vorher:%s",s); while( p=strchr(s,'-') ) memmove(p,p+1,strlen(p)); printf("nachher:%s",s); /* der Speicherbereich wird nicht "verkleinert", die Stringlänge wird ggf. verkürzt */
-
ah, so hieß die Funktion... weil mir nix eingefallen is hab ich schnell mal was selber nachprogrammiert ^^
-
B.B. schrieb:
Dein Array braucht nicht zu schrumpfen, du kannst von Beginn an ein Array mit 14 Bytes anlegen und alle Zeichen bis auf das '-' reinkopieren, das ist alles.
Generell besteht die Lösung eines Problems nicht aus dem Abändern der Aufgabenstellung, bis sich alles von selbst regelt...
Auch, wenn man die Aufgabenstellung durchaus kritisch hinterfragen darf und soll, hält man sich üblicherweise erstmal an die Vorgaben und Gegebenheiten...
-
Naja, die Aufgabenstellung ist ja wohl:
bastardbychoice schrieb:
Ich habe vor, eine EAN im Format 1-123456-123456 als Parameter beim Programmaufruf mitzugeben und danach weiterzuverarbeiten.
Nun sollen die '-' rausgeschmissen werden.Davon abgesehen kann ein Array (char arr[16]) nicht schrumpfen / verkleinert werden.
-
bastardbychoice schrieb:
.... als Parameter beim Programmaufruf ....
lass doch die EAN in einem der argv parameter drin und entferne dort die '-' durch verschieben/umkopieren.