Suite de caractère

Fermé
ramon - 8 janv. 2008 à 01:24
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 8 janv. 2008 à 13:15
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
8 janv. 2008 à 10:32
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
8 janv. 2008 à 13:08
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
8 janv. 2008 à 13:10
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
8 janv. 2008 à 13:11
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
8 janv. 2008 à 13:15
Exact j'avais pas vu ton lien, il y a effectivement plus d'information dans l'autre discution ^^
0
le programme fonction tré bien
mais je veu quelqu'un me léxpliké
0