Chaîne de caractères en C

Résolu
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   -  
Nxl Messages postés 1038 Date d'inscription   Statut Membre Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 385 Date d'inscription   Statut Membre Dernière intervention   18
 
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 385 Date d'inscription   Statut Membre Dernière intervention   18
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Pour définir un tableau à 3 cases il faut faire char[3].
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
C'est bien ce que je pensais. Merci pour ton aide :)
0
Nxl Messages postés 1038 Date d'inscription   Statut Membre Dernière intervention   133
 
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