Elemente im Array verschieben



  • Hallo Leute

    Ich arbeite gerade an einem Programm, dass ein String Array durchsucht und bestimmte Zeichen durch andere ersetzt (bspw. '@' durch '[at]') ersetzt.

    Mein Problem ist, dass aber beim ersetzen das nachfolgende Zeichen ersetzt wird, weil ja das Ersatzzeichen länger ist.

    Meine Frage lautet deshalb, ob es eine Möglichkeit gibt, die Werte im Array zu verschieben?

    Danke schon mal für eure Hilfe 🙂

    mfg Gerald



  • Du könntest dir eine Funktion schreiben, die rekursiv durch die Zeichenkette geht und alle Elemente verschiebt.



  • Hey

    Danke für die schnelle Antwort 😉 Könntest du mir ein kleines Beispiel geben bitte?

    mfg Gerald



  • Hm naja, habe nie was mit C gemacht. Aber rein von der Logik her so: (ungetestet!)

    void shiftCharElements(char *charBuffer, unsigned int digits)
    {
    	charBuffer = (char *) malloc (digits); 
    
    	for(unsigned int i = strlen(charBuffer); i != -1; --i)
    	{
    		charBuffer[i] = charBuffer[i - digits];
    	}
    }
    

    Mit C++ wäre das schon ne Ecke leichter...



  • Kóyaánasqatsi schrieb:

    Hm naja, habe nie was mit C gemacht. Aber rein von der Logik her so: (ungetestet!)

    void shiftCharElements(char *charBuffer, unsigned int digits)
    {
    	charBuffer = (char *) malloc (digits); 
    
    	for(unsigned int i = strlen(charBuffer); i != -1; --i)
    	{
    		charBuffer[i] = charBuffer[i - digits];
    	}
    }
    

    Mit C++ wäre das schon ne Ecke leichter...

    Auf welchem Stern wird diese Logik praktiziert?



  • gerald123 schrieb:

    Ich arbeite gerade an einem Programm, dass ein String Array durchsucht und bestimmte Zeichen durch andere ersetzt (bspw. '@' durch '[at]') ersetzt.

    du kannst z.b. eine neue zeichenkette erzeugen, die alte dort hineinkopieren bis zum auftauchen von '@', dann das '[at]' einfügen und nach dem '@' weitermachen, usw... bis die zeichenkette zuende ist.
    btw, hier im forum taucht die frage öfter auf, such dich mal durch, sind auch lauffähige beispiele dabei.
    🙂


Anmelden zum Antworten