Programmation en C les tableaux
Tom
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Je souhaite comparer les caractères de deux tableaux les un après les autres et afficher les caractères qui se ressemble.
Ici je souhaite comparer le tableau voyelle qui contient (a,e,i,o,u,y,) au tableau nom celui-ci contient le nom tapez ultérieurement par l'utilisateur du programme.
Exemple: nom=tom
Comparer tom à a,e,i,o,u,y
resultat: les deux tableau ont comme caractere(s) identique: o.
Voici mon code:
Je souhaite comparer les caractères de deux tableaux les un après les autres et afficher les caractères qui se ressemble.
Ici je souhaite comparer le tableau voyelle qui contient (a,e,i,o,u,y,) au tableau nom celui-ci contient le nom tapez ultérieurement par l'utilisateur du programme.
Exemple: nom=tom
Comparer tom à a,e,i,o,u,y
resultat: les deux tableau ont comme caractere(s) identique: o.
Voici mon code:
#include<stdio.h>
#include <string.h>
main()
{
char nom[20],prenom[20];
int i,n;
void main(){char voyelle[7];
Chaine[0]= 'a';
Chaine[1]= 'e';
Chaine[2]= 'i';
Chaine[3]= 'o';
Chaine[4]= 'u';
Chaine[5]= 'y';
Chaine[6]= '\0';}
printf("Tapez vote nom et prenom: \n");
scanf("%s %s",&nom,&prenom);
i=0;
n=0;
while(nom[i]!=0)
i++;
while(prenom[n]!=0)
n++;
printf("Votre nom comporte: %d lettres et votre prenom: %d lettres", i,n);
// strcmp(nom,voyelle) ???
fflush(stdin);
getchar();
}
A voir également:
- Programmation en C les tableaux
- Application de programmation - Guide
- Mise en forme tableau word - Guide
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Mettre en veille un programme - Guide
3 réponses
Je crois :
char voyelleEnCommun[];
int j, k, l=0;
for(j=i;j>0;j--) { // pour chaque lettre du nom
for(k=0;k<6;k++) { // on test chaque voyelles
if(nom[i] == voyelle[k]) {
voyelleEnCommun[l] = voyelle[k]; // On note la voyelle en commun
l++; // dans un tableau
} else
;
}
} // on a tester toutes les lettres du mot
for(;l>0;l--) // l le nombre ee voyelles en commun
printf("%c ,", voyelleEnCommun[l]); // affiche les voyelles trouver
printf(" sont presentes dans votre nom");
}
Bonjour,
Plusieurs remarques :
main() -> int main (void)
Tu peux directement déclarer ton tableau de voyelle en une ligne :
char voyelle[]="aeiou";
void main(){ ???
Attention tu déclares une fonction dans une fonction (de même nom en plus).
Pour le scanf, je te conseille :
scanf("%19s %19s",nom,prenom);
Pour le nombre de lettre, tu peux utiliser directement la fonction strlen.
strlen(nom) qui te renverra le nombre de caractères.
Pour évaluer le nombre de voyelles, tu peux faire :
A partir de ça, tu peux
fflush(stdin);
A ne jamais utiliser.
Et enfin n'oublie pas : "return 0;" juste après ton dernier getchar();
Cordialement,
Google is your friend
Plusieurs remarques :
main() -> int main (void)
Tu peux directement déclarer ton tableau de voyelle en une ligne :
char voyelle[]="aeiou";
void main(){ ???
Attention tu déclares une fonction dans une fonction (de même nom en plus).
Pour le scanf, je te conseille :
scanf("%19s %19s",nom,prenom);
Pour le nombre de lettre, tu peux utiliser directement la fonction strlen.
strlen(nom) qui te renverra le nombre de caractères.
Pour évaluer le nombre de voyelles, tu peux faire :
for(i=0; i < strlen(voyelle) + 1; i++)
if ( strchr(nom, voyelle[i]) )
printf("voyelle commune : \n", voyelle[i]);
A partir de ça, tu peux
fflush(stdin);
A ne jamais utiliser.
Et enfin n'oublie pas : "return 0;" juste après ton dernier getchar();
Cordialement,
Google is your friend
Tu as oublié de déclarer la taille du tableau.
if(nom[i] == voyelle[k]) {
C'est quoi i ? l plutôt non ?
char voyelleEnCommun[i+1];// nombre de lettre du nom
et pour le if c'est nom[j] car c'est la lettre du nom qu'on est entrain de tester
C'est quoi le i ?
Dans ce cas, for(j=i;j>0;j--), il vaut mieux commencer à i-1, sinon tu commences avec '\0'. Certes rien de dramatique.
Sinon pour Tom,
Si tu utilises cet algorithme, n'oublie pas de mettre ton compilateur en ISO C99, sinon cela ne fonctionnera pas. Ou alors utilise malloc pour faire déclarer le tableau.