string map (ersetzen eines teilstrings)



  • Ich suche eine string map function:

    char *string = new char;
    strcpy(string, "This is a simple string");
    char *what = new char;
    strcpy(what, "simple");
    char *with = new char;
    strcpy(with, "new");
    
    string_map (string, what, with);
    cout << string << endl;
    

    rauskommen sollte: "This is a new string"

    für die funktion habe ich folgenden Quelltext:

    int string_first(char *string, char *what) {
        char *pch = strstr (string, what);
        int i = 0;
        while (string+i != pch && i < strlen(string)) {
            i++;
        }
        if (i == strlen(string) ) {
            return -1;
        } else {
            return i;
        }
    }
    
    int string_map (char *string ,char *what, char *with) {
      char *pch;
      pch = strstr (string,what);
      int first = string_first(string, pch);
    
      char *out = new char[first];
      strncpy(out, string, first);
      out[first] = '\0';
      strcat(out, with);
    
      int len = strlen(string)-first-strlen(what)+1;
      char *rest = new char[len];
      rest = string+first+strlen(what);
    
      strcat(out, rest);
    
      string = out;
      return 0;
    }
    

    wenn ich die function mit folgendem Aufruf starte funktioiniert es:

    string_map ("This is a simple string", "simple", "new");
    


  • und wo ist nun dein problem?

    du stellst nämlich gar keine frage....


Anmelden zum Antworten