Salut a tous, je dois faire un prog qui affiche les initiales d'une chaine en majuscule :
ex
en entrée:
vive le c
en sortie:
VLC
Au debut j'ai penssé a ce code
#include <stdio.h>
int main()
{
char chaine[256]=" ",chaine2[256]=" ";
int i,j = 0;
//saisie de la chaine
scanf("%s",&chaine[i]);
//on transforme d'office le premier caractere
chaine2[0]=chaine[0]-32;
j++;
while(chaine[i]!='\0')
{
if(chaine[i]=' ')
{chaine2[j]=chaine[i+1]-32;
j++;
}
i++;
}
//on affiche la chaine
printf("%s\n",chaine2);
return 0;
}
Mais j'avais des resultat incoherent. puis a l'aide d'une simple boucle j'ai remarqué que scanf("%s") stoppe la saisie quand le caractere est un espace.
En effet javais saisi "vive le c" et avec la boucle je constatais qu'il n'y avait plus que "vive" dans la chaine.
J'ai donc essayé de changer le mode de saisie de la chaine :
#include <stdio.h>
int main()
{
char chaine[256]=" ",chaine2[256]=" ";
int i,j = 0;
do
{
scanf("%c",&chaine[i]);
i++;
} while (chaine[i]!='\0');
/* Boucle pour verifier la chaine
for (i=0;i<10;i++)
printf("%d=%c\n",i,chaine[i]);*/
chaine2[0]=chaine[0]-32;
j++;
while(chaine[i]!='\0')
{
if(chaine[i]=' ')
{chaine2[j]=chaine[i+1]-32;
j++;
}
i++;
}
printf("%s\n",chaine2);
return 0;
}
Or ici j'ai une erreur de segmentation.
Voila j'attends vos reponsses (et je sent que j'ai fait une connerie mais c'est pas grave

)