Le langage C - Exercices
Résolu
Mido1798
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Mido1798 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Mido1798 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux réaliser un exercice mais je ne sais pas comment m'y prendre. Il faut créer un programme en langage C permettant à l'utilisateur de saisir 5 noms ne comportant pas de caractères blancs puis les afficher à la fin tous les noms saisis. Si à la fin un des noms saisi comporte le mot "fin" le programme s'arrête, sinon le programme doit continuer tant que l'utilisateur n'a pas tapé le mot fin.
Quelqu'un pourrait m'aider?
Je veux réaliser un exercice mais je ne sais pas comment m'y prendre. Il faut créer un programme en langage C permettant à l'utilisateur de saisir 5 noms ne comportant pas de caractères blancs puis les afficher à la fin tous les noms saisis. Si à la fin un des noms saisi comporte le mot "fin" le programme s'arrête, sinon le programme doit continuer tant que l'utilisateur n'a pas tapé le mot fin.
Quelqu'un pourrait m'aider?
A voir également:
- Le langage C - Exercices
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Transmath 3eme corrigé exercices ✓ - Forum Loisirs / Divertissements
- Langage visual basic - Télécharger - Langages
2 réponses
Bonjour,
Et en quoi pouvons-nous t'aider ? Que connais-tu en C ?
Qu'as-tu commencé à faire ? Qu'est-ce qui te bloque ?
Cdlt,
Et en quoi pouvons-nous t'aider ? Que connais-tu en C ?
Qu'as-tu commencé à faire ? Qu'est-ce qui te bloque ?
Cdlt,
On m'a dit de créer une boucle principale, une chaîne de caractère et un tableau à double dimensions. C'est ce double dimensions qui me bloque. On m'a dit qu'il me servirait à enregistrer les chaînes que saisit l'utilisateur.
Voilà mon problème.
Merci de m'aider.
Voilà mon problème.
Merci de m'aider.
Voici mon code non fonctionel
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "main.h" int main(void) { char nom[100], enregistrer[5][100]; int continuer = 1, i = 0, j = 0; while(continuer) { for(i = 0; i < 5; i++) { printf("Saisissez un nom : "); lire(nom, 100); strcpy(nom, enregistrer[i]); } for(j = 0; j < 5; j++) { if(strcmp(enregistrer[j], "fin") != 0) { puts(enregistrer[j]); } else { continuer = 0; } } } } int lire (char *chaine, int longueur) { char *positionEntree = NULL; if(fgets(chaine, longueur, stdin) != NULL) { positionEntree = strchr(chaine, '\n'); if(positionEntree != NULL) { *positionEntree = '\0'; } else { viderBuffer(); } return 1; } else { viderBuffer(); return 0; } } void viderBuffer(void) { int c = 0; while(c != '\n' && c != EOF) { c = getchar(); } }
Ah, ça fait plaisir de voire des jolis codes avec une indentation :-).
Tu as juste oublié un : return 0; dans le main() (même si non obligatoire en C99).
Et l'erreur qui casse tout : strcpy(nom, enregistrer[i]); Tu as inversé enregistrer[i] et nom. C'est strcpy(dest, src). Sinon, plutôt qu'utiliser strcpy, utilise plutôt strncpy par sécurité.
Et enfin pour information, tu n'es pas obligé d'utiliser une variable temporaire (nom). Tu peux directement faire : lire(enregistrer[i],100); et encore mieux : lire(enregistrer[i], sizeof enregistrer[i]) comme ça, si tu modifies la taille du tableau, tout le reste suit :-).
Tu as juste oublié un : return 0; dans le main() (même si non obligatoire en C99).
Et l'erreur qui casse tout : strcpy(nom, enregistrer[i]); Tu as inversé enregistrer[i] et nom. C'est strcpy(dest, src). Sinon, plutôt qu'utiliser strcpy, utilise plutôt strncpy par sécurité.
Et enfin pour information, tu n'es pas obligé d'utiliser une variable temporaire (nom). Tu peux directement faire : lire(enregistrer[i],100); et encore mieux : lire(enregistrer[i], sizeof enregistrer[i]) comme ça, si tu modifies la taille du tableau, tout le reste suit :-).
Pour le sizeof enregister[i] je préfère ne pas le mettre parce que mon but c'est de réaliser l'exercice, et c'est ce que je viens de faire. La faute était dans strcpy, merci ;) et merci pour tes compliments sur l'indentation de mon code lol.
Par curiosité, à quoi sert strncpy ? Je ne connais pas cette fonction
Par curiosité, à quoi sert strncpy ? Je ne connais pas cette fonction