Accés au éléments d'une chaine

clarabella 32 -  
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
mon problème est le suivant:
je déclare une chaine dans le C: char chaine[50]
ensuite je veux traiter les caractères de ma chaine un a un, normalement j'accéde à chaque élément avec chaine[i] OR chaine[i] me renvoie toujours la chaine initiale à partir de l'indice i????!!
exemple: chaine[50]="bonjour";
chaine[2]="njour"
ce n'est pas normal non???
et je sais que je peux obtenir le caractère si je fais printf("%lc",chaine[i]), mais j'ai besoin des caractères pour les traiter pas seulement pour afficher,
Vous serez vraiment gentils de me résoudre ce problème, merci et bonne journée.
Configuration: Windows XP Internet Explorer 8.0

5 réponses

  1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    effectivement, chaine[i] est censé être un caractère...

    comment déclares-tu ton tableau exactement ?
    Comment modifies-tu tes caractères ?
    0
  2. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    pardon, j'ai vu comment tu déclares ta chaine, c'est ok. Mais comment l'initialises-tu ?
    0
    1. clarabella 32
       
      Merci de m'avoir répondu,
      alors je l'initialise comme suit: char chaine[100]; comme ma chaine est élément d'une structure, je fais un
      scanf(" %s", &c)
      strcpy(structure->mot,c)
      je ne comprends pas pourquoi ça ne marche pas. bonne journée.
      0
  3. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    Non, je pense que ça ne va pas marcher comme ça.
    scanf(" %s", &chaine)

    fonctionne pour remplir la chaine.
    Pas pour une structure a priori (même si selon les cas ça peut marcher).

    Il faut remplir séparément les éléments de ta structure, c'est plus prudent.

    Quel est la strcuture dont tu parles ?
    0
  4. clarabella 32
     
    struct instr
    {
    struct instr *suiv;
    int prec;
    int succ;
    char mot[100];

    };
    struct instr *Creerinstr (char c[])
    {
    struct instr *P;
    P = (struct instr *) malloc( sizeof(struct instr)) ;
    strcpy(P->mot, c);
    P->prec = 0;
    P->succ = 0;
    P->suiv = NULL;
    return (P) ;
    }
    voilà maintenant l'accés à ch[i] ne marche ps:ça donne tte la chaîne à partie de la case i, merci bien.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    ok ça me semble correct.

    Quel est exactement la déclaration de ton ch[] ont tu parles et comment est-ce que tu l'utilises ?
    0