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

eemikhm Messages postés 6 Date d'inscription jeudi 30 avril 2009 Statut Membre Dernière intervention 3 mai 2010 - 10 mai 2009 à 21:14
isil4 Messages postés 15 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 janvier 2012 - 13 mai 2009 à 14:24
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
11 mai 2009 à 08:09
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);
}
0
isil4 Messages postés 15 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 janvier 2012
13 mai 2009 à 14:24
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
0
Rejoignez-nous