Zahl an String anhängen?



  • Hallo,

    ich müsste an an einen String eine Zahl anhängen und dann wieder einen Teilstring. Mit strcat() sagt er dass der Datentyp nicht kompatiebel ist!
    Das soll dann ungefähr so aussehen:

    //...
    strncpy(ziel,orig,n);
    //hier soll die Zahl eingefügt werden
    strcat(ziel,orig,(orig+n)); // hier soll der Rest des orig-Strings eingefügt werden
    

    Kann mir da jemand helfen?

    Ueberlebenskuenstler

    [ Dieser Beitrag wurde am 26.10.2002 um 13:32 Uhr von Ueberlebenskuenstler editiert. ]



  • Die ganze Sache kannste auch leichter haben, wenn Du sprintf() nimmst:

    sprintf(res, "%s%d%s", anfang, zahl, ende);
    

    'anfang' und 'ende' sind Deine Strings, zahl ist ein int. Wenn Dein Compiler C99 konform ist, solltest Du snprintf() nehmen.



  • Danke Erstemal. Aber dann muss ich ja erst den anfang ein einen eigenen string kopieren und das ende auch! Aber das mit sprintf werde ich mal versuchen! Mein Compiler ist der gcc!

    Ueberlebenskuenstler



  • statt

    sprintf(res, "%s%d%s", anfang, zahl, ende);
    

    kannste auch

    sprintf(res, "%d%s", zahl, ende);
    strcat(anfang, res);
    

    machen ... ob sich das lohnt, hängt davon ab, wie lang anfang im vergleich zu zahl+ende ist.



  • du solltest aber ggf. snprintf benutzen, wenn die Gefahr besteht, dass ein Bufferoverflow statt finden kann und du solltest memcpy gegenüber den string Kopier Funktionen vorziehen, wenn du die größe der Strings kennst.


Anmelden zum Antworten