Wie verwende ich strcasestr()?

Lesezeit: 1 Minute

ich #include <string.h> aber wenn ich anrufe strcasestr(src, search); Ich bekomme folgende Fehlermeldung implicit declaration of function ‘strcasestr’. wie kompiliere ich: gcc-4.6 -Wall -lsqlite3 -lunac -Werror -O2 -o foo.out foo.c wie kann man das beheben? Danke im Voraus.

Benutzer-Avatar
Matteo Italien

Wie in der angegeben entsprechende Manpageseit strcasestr ist eine nicht standardmäßige Erweiterung, die Sie benötigen #define _GNU_SOURCE Vor dem #include <string.h> vor irgendwelchen #include (andere Dateien können bereits enthalten <string.h>, danke @Cubbi für den Hinweis auf dieses potenzielle Problem); dies kann auch leicht durch Angabe erreicht werden -D_GNU_SOURCE in der Compiler-Befehlszeile.

  • Ich habe auch die Prototyp-Funktion hinzugefügt:#include <string.h> #define _GNU_SOURCE char *strcasestr(const char *haystack, const char *needle); und funktioniert jetzt gut. Vielen Dank.

    – Jack

    30. März 2012 um 1:12 Uhr

  • @Jack, Sie müssen (und sollten) den Prototyp nicht hinzufügen. Das Definieren muss jedoch sein Vor die beinhalten.

    – Matthäus Flaschen

    30. März 2012 um 1:32 Uhr


  • Achtung: Stellen Sie sicher, dass #define die erste Zeile in der Datei ist. Wenn du #include <stdio.h>dann #define _GNU_SOURCEund dann #include <string.h>, erhalten Sie strcasestr nicht, da stdio.h bereits string.h enthält. Die sichere Wahl ist das Kompilieren mit -D_GNU_SOURCE.

    – Kubbi

    28. August 2012 um 12:58 Uhr

  • Ich habe diese Zeile auch hinzugefügt, aber es funktioniert immer noch nicht. irgendeine Hilfe?

    – Hefaz

    2. Mai 2019 um 23:06 Uhr

  • @Hefaz Welchen Compiler/welche Plattform verwendest du?

    – Matteo Italien

    3. Mai 2019 um 5:06 Uhr

Sie müssen hinzufügen:

#define _GNU_SOURCE

Vor dem string.h enthalten, da die Funktion nicht standardmäßig ist.

1215610cookie-checkWie verwende ich strcasestr()?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy