Partage
  • Partager sur Facebook
  • Partager sur Twitter

Espaces dans une chaîne de caractères

Sujet résolu
    31 janvier 2006 à 22:05:44

    Bonsoir tout le monde et excusez-moi si la question a déjà été posée : je n'ai rien trouvé de pertinent dans les faq ni d'ordonné dans la recherche.

    Je viens de lire le cours de mateo en C concernant les chaînes de caractères. D'habitude, quand je me pose des questions, je fais un test, je regarde pourquoi ça plante, et je trouve d'où vient mon erreur.

    Cette fois-ci, je fais un scanf qui demande d'entrer des lettres à l'utilisateur. Quand j'ai éxécuté mon programme, j'ai mis un espace dans ma réponse. Le programme n'a enregistré que le premier mot, sans tenir compte de l'espace et de ce qu'il y a après.

    Existe-t-il un moyen de contourner cette limitation ? Ou devons-nous nous résigner (du moins à notre niveau) à un mot par chaîne de caractère dans un scanf ?

    A bientôt.
    • Partager sur Facebook
    • Partager sur Twitter
      31 janvier 2006 à 22:14:53

      Résigne toi ; la solution est fgets que tu verras d'ici quelques chapitres.
      • Partager sur Facebook
      • Partager sur Twitter
        31 janvier 2006 à 22:15:39

        Réponse courte et simple, mais qui me suffit amplement. Merci ^^
        • Partager sur Facebook
        • Partager sur Twitter
          31 janvier 2006 à 22:15:53

          scanf("%[^\n]s", chaine);
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            31 janvier 2006 à 22:16:38

            scanf c'est mal. fgets c'est mieux.
            char *fgets (char *s, int size, FILE *stream);

            En gros tu mets :
            char chaine[20];
            fgets (chaine, 20, stdin);

            Et ça marche :D en fait stdin correspond à l'entrée standard. Et là, i lit toute la chaîne, avec un maximum de 20 caractères.

            edit : oups légèrement grillé... quelques chapitres ? :D
            • Partager sur Facebook
            • Partager sur Twitter

            Espaces dans une chaîne de caractères

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown