Introduire des phrases en C
Résolu/Fermé
Limbergh
-
15 févr. 2008 à 20:21
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 15 févr. 2008 à 21:30
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 15 févr. 2008 à 21:30
A voir également:
- Introduire des phrases en C
- Comment introduire un filigrane dans word - Guide
- Tapez cette phrase, en respectant bien les espaces et la ponctuation. - Guide
- Construire une phrase avec des mots donnés ✓ - Forum Loisirs / Divertissements
- Traduction de phrase en français vers le créole martiniquais - Forum traduction
- Mettre une phrase en majuscule - Guide
12 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
15 févr. 2008 à 21:18
15 févr. 2008 à 21:18
écrit plutôt comme ça
il faut éviter les variables globales
il faut éviter les variables globales
#include <stdio.h> #include <stdlib.h> #include <string.h> int choix; int main (int argc, char *argv[]) { char mot[100]; int choix = 1; do { printf ("-1- introduisez un mot\n"); printf ("-2- affichez le mot\n"); printf ("-0- FIN\n"); printf("Faites votre choix : "); scanf ("%d", &choix); getchar(); switch (choix){ case 1: printf("Saisissez le mot/phrase : "); fgets(mot,100,stdin); break; case 2: printf ("Vous avez saisi : %s\n", mot); break; } } while (choix != 0); system ("PAUSE"); return 0; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
15 févr. 2008 à 21:01
15 févr. 2008 à 21:01
Utilise plutôt la fonction fgets(char *s,int size, FILE *stream)
dans ton cas ça donne
dans ton cas ça donne
fgets(mot,100,stdin);et ne declare pas char mot[100] dans la boucle
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
15 févr. 2008 à 20:35
15 févr. 2008 à 20:35
Salut,
scanf(" %s", &mot);
écrit
scanf(" %s", &mot);
écrit
scanf("%s", mot);
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
15 févr. 2008 à 21:04
15 févr. 2008 à 21:04
je vois que tu n'as pas compris ça
scanf("%s", &mot);
mot c'est une chaîne de caractères donc un tableau de caractères en C
mot c'est l'adresse de 1er élément
danc ce cas on ne mets pas & devant
pour scanf il faut savoir que l'espace c'est un séparateur
donc même si tu as declaré char mot[100], scanf s'en fiche complétement, il ne va prendre qu'un seul mot
pour prendre trois mot par exemple il faut utiliser
scanf("%s %s %s",mot1,mot2,mot3);
scanf("%s", &mot);
mot c'est une chaîne de caractères donc un tableau de caractères en C
mot c'est l'adresse de 1er élément
danc ce cas on ne mets pas & devant
pour scanf il faut savoir que l'espace c'est un séparateur
donc même si tu as declaré char mot[100], scanf s'en fiche complétement, il ne va prendre qu'un seul mot
pour prendre trois mot par exemple il faut utiliser
scanf("%s %s %s",mot1,mot2,mot3);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
15 févr. 2008 à 20:26
15 févr. 2008 à 20:26
Ton code saisit déjà des phrases jusqu'à 100 caractères. (Phrase = mots séparés par des espaces)
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
15 févr. 2008 à 20:31
15 févr. 2008 à 20:31
ok,
mais quand j'introduis une phrase, il ne m'affiche que le dernier mot
et je ne vois pas pourquoi???
mais quand j'introduis une phrase, il ne m'affiche que le dernier mot
et je ne vois pas pourquoi???
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
15 févr. 2008 à 20:40
15 févr. 2008 à 20:40
Je viens de le faire et ça ne change rien. J'ai toujours le dernier mot
qui s'affiche
qui s'affiche
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
15 févr. 2008 à 20:53
15 févr. 2008 à 20:53
Donc, je ne vois pas ce qu'il faut faire pour afficher une phrase à l'écran
revoici mon code
merci d'avance
revoici mon code
#include <stdio.h> #include <stdlib.h> #include <string.h> int choix; int main(int argc, char *argv[]) { do { char mot[100]; printf("-1- introduisez un mot\n"); printf("-2- affichez le mot\n"); printf("-0- FIN\n"); scanf("%d", &choix); switch(choix) { case 1: scanf(" %s", &mot); break; case 2: printf("%s\n", mot); break; } } while(choix!=0); system("PAUSE"); return 0; }
merci d'avance
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
15 févr. 2008 à 21:14
15 févr. 2008 à 21:14
rebonsoir,
j'ai mis ce que tu m'as dit mais maintenant il ne m'affiche plus le premier mot.
Je te remet mon code, j'ai peut-être fait une erreur???
Encore merci pour tout, c'est d'ailleurs pas la première fois...
j'ai mis ce que tu m'as dit mais maintenant il ne m'affiche plus le premier mot.
Je te remet mon code, j'ai peut-être fait une erreur???
#include <stdio.h> #include <stdlib.h> #include <string.h> char mot[100]; int choix; int main(int argc, char *argv[]) { do { printf("-1- introduisez un mot\n"); printf("-2- affichez le mot\n"); printf("-3- introduisez des numeros de tableau\n"); printf("-0- FIN\n"); scanf("%d", &choix); getchar(); switch(choix) { case 1: scanf("%s", mot); fgets(mot,100,stdin); break; case 2: printf("%s\n", mot); break; default : break; } } while(choix!=0); system("PAUSE"); return 0; }
Encore merci pour tout, c'est d'ailleurs pas la première fois...
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
15 févr. 2008 à 21:21
15 févr. 2008 à 21:21
merci pour ton aide...
Tu sais juste encore m'expliquer ce que viens faire le getchar()...
Après j'arrête de t'ennuyer!!!
Bon sans blaguer, merci d'avance
Limbergh
Tu sais juste encore m'expliquer ce que viens faire le getchar()...
Après j'arrête de t'ennuyer!!!
Bon sans blaguer, merci d'avance
Limbergh
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
15 févr. 2008 à 21:24
15 févr. 2008 à 21:24
getchar(); lit le caractère '\n' qui traine dans le buffer
sinon tu ne pourras pas saisir le mot ou la phrase
tu peux enlever getchar(); pour voir
quand tu entre la valeur de choix qui est un entier tu appuies sur ENTREE pour continuer
c'est à ce moment que le caractère '\n' traine
sinon tu ne pourras pas saisir le mot ou la phrase
tu peux enlever getchar(); pour voir
quand tu entre la valeur de choix qui est un entier tu appuies sur ENTREE pour continuer
c'est à ce moment que le caractère '\n' traine
limbergh
Messages postés
658
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
29 juin 2010
140
15 févr. 2008 à 21:30
15 févr. 2008 à 21:30
merci pour tout