|
|
|
|
Bonjour,
Lorsque j'éxecute se programme qui doit lire une chaine de caractère et afficher les caractères minuscules en majuscule et inversement.
Dans le terminale s'affiche "erreur de segmentation et je ne voie pas pourquoi.
Voici mon programme:
#include <stdio.h>
int main(void) {
printf("Saisissez votre ligne de texte:\n");
int i;
char c[i];
c[i]=getchar();
for(i=0;i<100;i++)
if(c[i]>=94)
c[i]=c[i]-32;
if ((c[i]>64)&(c[i]<94))
c[i]=c[i]+32;
printf("%c\n",c[i]);
putchar(c[i]);
return 0;
}
Configuration: Linux Firefox 3.0
Je pense que non, rien ne doit le choquer.
|
Il est clair que le programme n'a pas été assez réfléchi avant d'être codé et compiler.
|
@flavdu44 :
char c[MAX]; c[i]=getchar(); Même problème, i n'est toujours pas connu. Et getchar(), va te lire un seul caractère et non une chaîne comme tu le souhaiterais. Utilise plutôt scanf ou fgets pour lire une chaîne de caractères. Pour l'affichage du tableau modifié, un simple puts(c) suffira. Pas besoin d'afficher caractère par caractère. Google is your friend |