[C] Scanf et chaînes de caractères.

Résolu/Fermé
niernier Messages postés 239 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 1 mars 2014 - 27 janv. 2010 à 19:37
dwyane346 Messages postés 147 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 6 septembre 2012 - 27 janv. 2010 à 22:08
Bonjour,
J'ai un petit soucis : lorsque j'essaye de faire un scanf avec une chaîne de caractère j'obtiens le message d'erreur suivant : attention : format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[100]’

Voici mon code source :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    char prenom[100];
    scanf("%s", &prenom);
    printf("prenom = %s \n", prenom);
    return 0;
}

D'avance merci!
A voir également:

6 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
27 janv. 2010 à 20:09
Car scanf est une fonction vraiment complexe et on a tendance à mal l'utiliser.
Par exemple, si tu mets scanf("%s", prenom); avec char prenom[5]; et que tu mets comme prénom : "geraldine", alors tu auras un segmentation fault. C'est d'ailleurs une si grave erreur qu'il est très important de mettre ses logiciels à jour ou d'appliquer les patchs pour être en sécurité ;-))).

Cdlt,
3