Besoin d'aide pour exo en c
pif
-
pif -
pif -
Bonjour a tous,
je suis en train d' apprendre le language C, mais je bloque sur un exo.
Si quelqu'un pouvait m'aider, ça serait sympa.
Voici le sujet:
Ecrire un programme qui lit une ligne tapée au clavier et affiche en majuscules les initiales des mots qu'elle contient
en entrée ----> exemple de texte avec des minuscules et des espaces
en sortie ---->EDTADMEDE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main ()
{
char clavier[100];
char str[100];
char * pch;
char * separateur= ",";
char mot1;
char mot2;
printf("Entrer votre texte\n");
scanf("%s",&clavier);
printf("\n");
pch = strtok (clavier,separateur);
while (pch != NULL)
{
mot1=pch[0];
mot2=toupper(mot1);
printf ("%c",mot2);
pch = strtok (NULL,separateur);
}
printf("\n");
system("pause");
return 0;
Mon souci est que ce programme fonctionne si je met comme separateur une virgule, mais je bloque pour remplacer la virgule par l'espace
Merci par avance
Dev C++
je suis en train d' apprendre le language C, mais je bloque sur un exo.
Si quelqu'un pouvait m'aider, ça serait sympa.
Voici le sujet:
Ecrire un programme qui lit une ligne tapée au clavier et affiche en majuscules les initiales des mots qu'elle contient
en entrée ----> exemple de texte avec des minuscules et des espaces
en sortie ---->EDTADMEDE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main ()
{
char clavier[100];
char str[100];
char * pch;
char * separateur= ",";
char mot1;
char mot2;
printf("Entrer votre texte\n");
scanf("%s",&clavier);
printf("\n");
pch = strtok (clavier,separateur);
while (pch != NULL)
{
mot1=pch[0];
mot2=toupper(mot1);
printf ("%c",mot2);
pch = strtok (NULL,separateur);
}
printf("\n");
system("pause");
return 0;
Mon souci est que ce programme fonctionne si je met comme separateur une virgule, mais je bloque pour remplacer la virgule par l'espace
Merci par avance
Dev C++
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
Salut,
essaie ça#include<stdio.h> #define DEDANS 1 #define DEHORS 0 int main () { int c, test; test = DEHORS; while((c=getchar()) != EOF){ if(c==' ' || c == '\t' || c == '\n') test = DEHORS; else if(test == DEHORS){ test = DEDANS; printf("%c",toupper(c)); } } return 0; } -
Bonjour
Ton programme est presque parfait, mais scanf ("%s",&clavier) arrête l'analyse sur le 1er espace ! donc clavier ne centient que le début de ta ligne jusqu'au 1er espace
remplace par gets(clavier) qui lit tout jusqu'à la fin de la ligne