string ersetzen

Dieses Thema im Forum "C/C++" wurde erstellt von Rainier, 19.08.2006.

  1. #1 Rainier, 19.08.2006
    Rainier

    Rainier Grünschnabel

    Dabei seit:
    19.08.2006
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo zusammen!


    Bin etwas verwirrt mit den Funktionen aus der string.h Bibliothek.
    Was sollte ich am besten verwenden wenn ich in einem Text nach einer bestimmten Zeichenkette suchen muss und diese durch eine andere Zeichenkette ersetzen soll?
    Für die meisten sollte das eine leichte Übung sein aber ich sitz jetzt schon etliche Stunden vorm PC ohne das was richtig funktioniert und wäre deshalb wirklich froh über Tipps (bitte nur C)!
    Danke!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
    Nun, meine "C"-Zeit ist schon etwas lange vorüber, inzwischen durch C++ und java etwas "aufgeweicht" ... aber ich mach mal einen Vorschlag:

    Code:
    #include <string.h>
    #include <malloc.h>
    
    /* replace will replace the first 'find' in 's' with 'replace'
     * return: NULL if 'find' is not found
     *         the result string allocated with 'malloc' on success
     */
    
    char* replace(const char* s, const char* find, const char* replace)
    {
    	const char* p;
    	char* ret;
    
    	p = strstr(s, find);
    
    	if (p == NULL)
    		return NULL;
    
    	ret = malloc(strlen(s) + strlen(replace) + 1 - strlen(find));
    
    	if (ret == NULL)
    		return NULL;
    
    	if (p != s)
    		strncpy(ret, s, p-s);
    
    	strcpy(ret + (p-s), replace);
    	strcat(ret, p + strlen(find));
    
    	return ret;
    }
    
    int main() 
    {
    	char* s;
    
    	s = replace("Meine Oma backt Kuchen", "backt", "isst");
    	if (s != NULL) {
    		puts(s);
    		free(s);
    	}
    	s = replace("Meine Oma backt Kuchen", "Kuchen", "Kekse");
    	if (s != NULL) {
    		puts(s);
    		free(s);
    	}
    	s = replace("Meine Oma backt Kuchen", "Meine", "Deine");
    	if (s != NULL) {
    		puts(s);
    		free(s);
    	}
    	s = replace("Meine Oma backt Kuchen", "Findet", "nix");
    	if (s != NULL) {
    		puts("Ooops: should not happen !: ");
    		puts(s);
    		free(s);
    	}
    }
    
    Ist sicher optimierungsbedürftig (Argumente prüfen, etc.) , aber es funzt ...

    Heiko
     
Thema:

string ersetzen

Die Seite wird geladen...

string ersetzen - Ähnliche Themen

  1. Mehrzeiligen String mittels sed ersetzen

    Mehrzeiligen String mittels sed ersetzen: Hallo, ich schreib euch, weil ich gar nicht durchblicke... ich habe eine jsp-Datei, wo definitiv folgende Zeilen drin stehen: <!-- Inhalt...
  2. Suchen nach String und Ersetzen zeilenweise

    Suchen nach String und Ersetzen zeilenweise: Hallo, ich habe folgendes Problem: ich möchte in einer großen Textdatei die zeilenweise folgendermaßen aufgebaut ist nach einem String...
  3. sed: gemischten string ersetzen

    sed: gemischten string ersetzen: Hallo, ich möchte eine bel. lange Zahlenfolge, die mit einem | beginnt durch die Zahlenfolge gefolgt von einem ^ ersetzen. Bsp |1234 -> 1234^...
  4. sed - Teilstring durch Variable ersetzen

    sed - Teilstring durch Variable ersetzen: Hallo, ich schreibe gerade an einem Shell-Skript das mir eine Datei ausliest und dort einen Platzhalter durch das aktuelle Datum ersetzt....
  5. Problem beim ersetzen von Zeichen im String

    Problem beim ersetzen von Zeichen im String: Also üeberall im String wo ein Punkt vorkommt soll dieser durch das letzte ergebnis ersetzt werden. Allerdings ersetzt er nur den ersten richtig...