zeichen in string escapen



  • wenn ich jetzt zwei strings habe und sie via sprintf zusammenfuegen moechte:

    sprintf(derFertigeString, "Hallo, ich %s", derAndereString);

    und derAndereString aus der datei wie folgt aussieht: "bin der zweite teil..."

    (die anfuehrungszeichen sind teil des strings)



  • also willst du die anführungszeichen los werden? oder wie?
    🙂



  • Es gibt Fälle da braucht man so was (zB für ein PDF):

    Ein Zeiger auf Quelle und Ziel, den Quellzeiger durchlaufen lassen und die
    Zeichen ggfls in das Ziel expandieren. Zum Decodieren der Quellzeichen einen
    switch verwenden.



  • Für ein bloßes sprintf muss man jedenfalls nichts in derAndereString escapen.



  • vielleicht schreibe ich einfach mal worum es sich konkret handelt...
    das ganze soll ein query string für eine mysql datenbank sein:

    sprintf(query, "INSERT INTO table(text) VALUES('%s')", textToInsert);

    setze ich direkt in den string ein " ein, dann sagt mit der compiler gleich, dass das zeichen nicht escaped ist... escape ich es ist alles in ordnung und es geht...

    nun habe ich nur das problem, dass das zeichen aus einem string kommt, den ich aus einer datei einlese und ihn nun escapen muss.

    ich hoffe das bringt etwas licht in die sache...



  • Wenn der Compliter meckert ist es etwas anderes.
    Ist den textToInsert der einzufügende Texte ? Der Compiler kennt den ja gar nicht.



  • Wenn du die Strings nur hintereinander schreiben möchtest würde ich strcat verwenden.



  • Wenn der Compliter meckert ist es etwas anderes.

    ja das ist ja klar, das war ja auch nur ein beispiel um es zu verdeutlichen..

    Ist den textToInsert der einzufügende Texte ? Der Compiler kennt den ja gar nicht.

    😕

    Wenn du die Strings nur hintereinander schreiben möchtest würde ich strcat verwenden.

    sprintf(query, "INSERT INTO table(text) VALUES('%s')", textToInsert);

    also mein %s soll der string halt eingesetzt werden...



  • Dann tippe ich darauf, daß die Datenbank meckert, nicht der Compiler.
    Schau mal im Handbuch nach, soweit ich weiß, muß man für SQL die Hochkommas
    mappen.



  • Dann tippe ich darauf, daß die Datenbank meckert, nicht der Compiler.

    ich hab ja auch nie gesagt, dass der compiler meckert 😉 ich wollte lediglich den string escapen, damit die anfrage an die datenbank nicht fehlschlaegt...

    *puh* also das was ich brauchte war mysql_real_escape_string


Anmelden zum Antworten