Problème lors de l'affectation d'un caractère a une chaine

Signaler
Messages postés
6
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
3 mai 2010
-
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 janvier 2012
-
Bonsoir, je vous en pris je besoin une réponse a mon problème en urgence.

Voici mon programme qui veut pas s'exécuter(problème lors de l'execution).
int i=0;char*ch;char indice='0';

main()

{


printf(" donnez indice\n");

scanf("%c",indice);

if (indice=='0') { ch[i]='0';i++;printf(" entre 1 \n"); }

else {ch[i]='1';i++;printf(" entre 2 \n");}

i=0;

while(ch[i]!='\0')

printf("%c",ch[i]);

}


Merci d'avance.

2 réponses

Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
1) On ne dit pas: c'est urgent. Généralement ça ne donne pas envie de répondre.
Lis ceci: http://www.gnurou.org/writing/smartquestionsfr
Et plus particulièrement ce paragraphe: http://www.gnurou.org/writing/smartquestionsfr#mozTocId277025

2) Ton programme, est super bizarre... Il y a pas mal d'erreur.

int i=0;char*ch;char indice='0';
Pourquoi faire des variables globales ? Ca ne sert à rien et il est déconseillé d'en utiliser (à moins d'être vraiment sur de ce que tu fais).

De plus, si plus tard dans ton programme tu veux utiliser ch comme un tableau, alors soit tu l'alloues avec malloc, soit tu le déclare comme un tableau statique.
char ch[32];

main()
La signature propre serait (en C ansi): int main(void)
{
  printf(" donnez indice\n");
  scanf("%c",indice);
  scanf attend un pointeur, donc il faut lui passer l'adresse de indice.
  scanf("%c", &indice);
  if (indice=='0')
  {
     ch[i]='0';
     i++;
     printf(" entre 1 \n");
  }
  else
  {
     ch[i]='1';
     i++;
     printf(" entre 2 \n");
  }

  i=0;
  while(ch[i]!='\0')
    printf("%c",ch[i]);
Ou tu peux directement écrire : printf("%s", ch);
}
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 janvier 2012

Moi je pensais plutot aux bibliotheques permettant de manipuler les chaines de caractéres, pour ton ch, tu peux utiliser strcpy(ta chaine, kle caractére que tu veux inserer);  ou bien si tu veux a chaque fois ajouter un caractére tu fais strcat(ta chaine, ton caractére), seulemnt tu dois inclure <string.h>.
bonne chance