strstr in varibale schreiben



  • Hallo,

    Ich möchte den rückgabewert von strstr in einen integer speichern:
    da ich von der adresse x aus suche und diese dann wieder abziehe, sollte ich einfach nur die stelle an der mein ausdruck y gefunden wurde als find erhalten.

    find=strstr(x,y)-x;
    printf("%i",strstr(x,y)-x);

    mit printf lässt sich das ganze so ausgeben wie ich es brauche.
    die ausgegebene zahl kann ich aber nicht mit find= speichern.
    was mach ich also falsch?

    mfg



  • symbian schrieb:

    die ausgegebene zahl kann ich aber nicht mit find= speichern.

    Warum nicht?



  • Vielleicht, weil der Rückgabewert von strstr kein Integer, sondern ein Pointer ist?



  • Belli schrieb:

    Vielleicht, weil der Rückgabewert von strstr kein Integer, sondern ein Pointer ist?

    Nee, war Quatsch, Du willst ja nicht den Rückgabewert speichern, sondern das (Integer)Ergebnis einer Zeigerarithmetik.
    Also das sollte problemlos funktionieren, allerdings nur, solange der gesuchte Ausdruck wirklich gefunden wird, weil strstr anderenfalls einen NULL-Pointer zurückgibt.



  • Deshalb die Frage: Warum sollte das nicht gehen?



  • Hallo,

    Danke für die Hilfe,

    Mein Problem war der NULL Pointer. Ich habe eine Schleife mit -1 als abbruchbedingung laufen lassen. Jetzt funktioniert alles.

    mfg


Anmelden zum Antworten