Suite de caractère

ramon -  
kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   -
slt,
svp ki peu méxpliké se programme :

#include<conio.h>
#include<stdio.h>
main()
{
int i,j=0,t[256];
char mot[50];

for (i=0;i<256;++i)
t[i] = 0;
i=0;

printf("saisit votre mot :");
gets(mot);
while(mot[i] != '\0')
{
if(mot[i] == ' ' || mot[i] =='\t')
j++;
else
t[mot[i]]++;
++i;
}

for(i=97;i<=122;i++)
printf("%c - %d fois.\n",i,t[i]);
getch();
}
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Cette instruction :
     t[mot[i]]++;

    M'a l'air bizarre...

    mot est un tableau de caractère, donc mot[i] représente un caractère.
    t est un tableau d'entier, donc t[i] est un entier.

    Par contre, ca ne se fait pas d'indexer un tableau d'entier par un caractère comme il est fait plus haut, donc le programme ne doit certainement pas fonctionner.

    Sinon le but du programme, outre les erreurs, notemment :
     for (i=0;i<256;++i)
    t[i] = 0; 
    


    au lieu de
     for (i=0;i<256;i++)
    t[i] = 0; 
    


    Je pense que le programme à pour but de compter le nombre d'occurence de chaque lettre du mot entré par l'utilisateur.

    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,



      t[mot[i]]++;
      M'a l'air bizarre...

      mot est un tableau de caractère, donc mot[i] représente un caractère.
      t est un tableau d'entier, donc t[i] est un entier.


      Elle n'est pas du tout bizarre

      mot[i] c'est bien un caractère
      mais t[] c'est un tableau d'entiers

      et comme en c si on attribue un caractère à une variable entière on aura le code ascii du caractère

      donc on aura l'index de tableau t

      si mot[i] = 'A' par exemple

      alor t[mot[i]] est équivalent à t[65]

      regarde ici (tu peux tester le code et tu verras bien que ça marche ;-) http://www.commentcamarche.net/forum/affich 4537851 probleme en c#12

      0
      1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        ha ok, je ne savais pas que ca mettais sa valeur ascii lorsqu'il s'agit d'un caractère. Merci de l'info :)

        Donc le programme permet bien de compter le nombre d'occurence de chaque caractère présent dans le mot donné par l'utilisateur.
        0
      2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention  
         
        en fait la solution je l'ai déjà donnée, voir le lien, et ramon n'a fait que copier le code ;-)
        0
      3. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        Exact j'avais pas vu ton lien, il y a effectivement plus d'information dans l'autre discution ^^
        0
  2. ramon
     
    le programme fonction tré bien
    mais je veu quelqu'un me léxpliké
    0