Chaîne de caractères en C

Résolu/Fermé
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 - 27 mars 2012 à 22:43
Nxl Messages postés 1038 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 5 janvier 2017 - 27 mars 2012 à 23:05
Bonjour, je commence à coder une nouveau programme, et je me heurte à un problème.

En effet, j'ai ce code
         scanf("%s%s", case1, case2);
         
         printf("\n!!!!!!!!! %s !!!!!!!!!!!", case1);
         printf("\n!!!!!!!!! %s !!!!!!!!!!!", case2);


qui n'enregistre que la chaîne case2. Par contre, si je met

         scanf("%s", case1);
         
         printf("\n!!!!!!!!! %s !!!!!!!!!!!", case1);


Ca me donne la bonne chaîne. Mon code n'enregistre donc que la dernière chaîne ecrite par l'utilisateur. Les variables case1 et case2 sont définies par le type suivant:


typedef char position[2];


Je ne vois pas ce qui peut clocher. Cela fait une heure que je me penche sur le problème.

Merci.

A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
27 mars 2012 à 22:50
Quel intérêt d'utiliser un char[2] sachant que si tu veux récupérer une chaîne de caractères le dernier sera un \0, en conséquence tu ne peux mettre qu'un caractère dans une telle chaîne, alors pourquoi ne pas utiliser directement un char avec %c ?
1
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
27 mars 2012 à 22:56
char[2] définit un tableau de caractère à 3 cases (char[0], char[1] et char[2]). Dans le reste du code, l'utilisateur se voit limité à deux caractères.
0
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
27 mars 2012 à 22:57
Hummmm. J'ai remplacé char[2] par char[3] et ca marche. Serait-ce char[3] qui définit un tableau à 3 cases?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
27 mars 2012 à 22:58
Pour définir un tableau à 3 cases il faut faire char[3].
0
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
27 mars 2012 à 23:01
C'est bien ce que je pensais. Merci pour ton aide :)
0
Nxl Messages postés 1038 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 5 janvier 2017 133
Modifié par antoine7104 le 27/03/2012 à 23:05
Oui car quand tu fait char[3] en faite la variable char[3] n'existe pas, ça fait :
char[0] char[1] char[2]. Mais tu as bien 3 variables...
0