Problème avec fonction "strpbrk"

cs_Faror91 Messages postés 1 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 18 mars 2011 - 18 mars 2011 à 21:02
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 mars 2011 à 09:34
Bonjour à tous,

Voila j'ai créer un programme utilisant la fonction strpbrk de la bibliothèque <string.h> pour rechercher plusieurs caractères dans une chaine et donner la chaine à partir de ce caractère mais il ne fonctionne pas pourtant tout à l'air bon. Quand je le lance dans code blocks il se lance mais quand je rentre les lettres a chercher il ne se passe rien. Pouvez vous m'aider s'il vous plait?

Voici le code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*Cette fonction recherche un des caractères dans la liste que vous lui donnez sous
forme de chaîne, contrairement à strchr qui ne peut rechercher qu'un seul caractère
à la fois.Par exemple, si on forme la chaîne "xds" et qu'on en fait une recherche
dans "Texte de test", la fonction renvoie un pointeur vers le premier de ces
caractères qu'elle a trouvé dedans*/

int main(int argc, char *argv[])
{
    char *suiteChaine NULL, *UserString NULL;

    printf("Entrez les lettres recherchees: \n");
    scanf("%s", UserString);

    suiteChaine = strpbrk("Texte de test", UserString); /*la fonction renvoit l'adresse de la lettre
    trouvée, c'est pourquoi suiteChaine n'est pas un pointeur*/

    if (suiteChaine != NULL)
    {
        printf("Voici la fin de la chaine a partir du premier des caracteres trouves : %s", suiteChaine);
    }

    return 0;
}


Merci d'avance

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 mars 2011 à 09:34
*UserString = NULL;
scanf("%s", UserString);

L'adresse 0 (NULL) n'est pas un buffer valide.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous