Suite de caractère

ramon -  
kij_82 Messages postés 4260 Statut Contributeur -
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();
}
A voir également:

2 réponses

kij_82 Messages postés 4260 Statut Contributeur 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
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
kij_82 Messages postés 4260 Statut Contributeur 857 > lami20j Messages postés 21644 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
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > kij_82 Messages postés 4260 Statut Contributeur
 
en fait la solution je l'ai déjà donnée, voir le lien, et ramon n'a fait que copier le code ;-)
0
kij_82 Messages postés 4260 Statut Contributeur 857 > lami20j Messages postés 21644 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
ramon
 
le programme fonction tré bien
mais je veu quelqu'un me léxpliké
0