Compteurs de voyelles [Résolu]

micoo86 7 Messages postés dimanche 2 avril 2006Date d'inscription 4 avril 2006 Dernière intervention - 2 avril 2006 à 19:10 - Dernière réponse : micoo86 7 Messages postés dimanche 2 avril 2006Date d'inscription 4 avril 2006 Dernière intervention
- 2 avril 2006 à 22:43
Bonjour,
en faite je n'arrive pas a faire ce programme : = =>
Écrire un programme C qui calcule le nombre de voyelles (ou de consonnes) dans un texte non accentué et terminé par un caractère # . On suppose que le texte n'est composé que de lettres minuscules non accentuées, que les mots ne sont séparés que par des espaces, qu'il n'y a aucune ponctuation


____________________________________
Micoo ==> The Special Agent
____________________________________
Afficher la suite 

13 réponses

Répondre au sujet
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 2 avril 2006 à 21:08
+3
Utile
Bon je crois que cette fois c'est la bonne.



int n = 0;


char chaine[256], *c;

gets(chaine);
c = chaine;

while(*c)
{
switch(*c)
{
case 'a': case 'e': case: 'i': case 'o': case 'u': case 'y': n++;
break;
//Meme chose pour les consonnes
}
*c++;
}

___________________________________________
Les plus grands esprits trouvent toujours une solution
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SAKingdom
cs_TeniX 118 Messages postés mercredi 24 décembre 2003Date d'inscription 11 décembre 2011 Dernière intervention - 2 avril 2006 à 19:51
0
Utile
Voici un exemple simple



char *Texte = "ma chaine de caractere";

char Tab[255];

int len,i=0;

int voyelle;



len = strlen(Texte);

strcpy(Tab,Texte);



for (i=0;i<=len;i++)

{

if (Tab[i] == 'a')

voyelle++; //1 voyelle

//etc

}

Ciao
Commenter la réponse de cs_TeniX
micoo86 7 Messages postés dimanche 2 avril 2006Date d'inscription 4 avril 2006 Dernière intervention - 2 avril 2006 à 20:05
0
Utile
____________________________________
Micoo ==> The Special Agent
____
Commenter la réponse de micoo86
micoo86 7 Messages postés dimanche 2 avril 2006Date d'inscription 4 avril 2006 Dernière intervention - 2 avril 2006 à 20:17
0
Utile
Bonjour,


j'ai essayé votre synthaxe mais il ne marche pas aussi


#include<stdio.h>


int main()


{


char * Texte ="ma chaine de caractere";


char Tab[255];


int len,i=0;


int voyelle;


printf("entrez votre Texte ==> \n");


scanf("%c",&Texte);


len = strlen(Texte);


strcpy(Tab,Texte);


for (i=0;i<=len;i++)


{


if (Tab[i] == 'a')


voyelle++;


if (Tab[i] == 'e')


voyelle++;


if (Tab[i] == 'i')


voyelle++;


if (Tab[i] == 'o')


voyelle++;


if (Tab[i] == 'u')


voyelle++;


if (Tab[i] == 'v')


voyelle++;


if (Tab[i] == 'y')


voyelle++;


printf("le nombre de voyelle est ==> %d\n",voyelle);


}
Commenter la réponse de micoo86
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 avril 2006 à 20:24
0
Utile
len = strlen(chaine); // 1er PARCOURS INUTILE

int n = 0;
char *c = chaine;
while(*c) {
switch(*c) {
case 'a': case 'e': case: 'i': case 'o': case 'u': case 'y': n++;
}
c++;
}

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Commenter la réponse de BruNews
cs_TeniX 118 Messages postés mercredi 24 décembre 2003Date d'inscription 11 décembre 2011 Dernière intervention - 2 avril 2006 à 20:28
0
Utile
Si il marche le problème c'est que ta mal utiliser scanf , jai donner
un exemple sur un chaine au hazard.le code adapté serait....



char Tab[255];

int len,i=0;

char cara;

int voyelle;





printf("Entrer la chaine...\n");



scanf("%c",&cara);

Tab[i]=cara;



while (cara != '\n')

{

i++;

scanf("%c",&cara);

Tab[i]=cara;



}





for (i=0;i<=len;i++)

{

if (Tab[i] == 'a')

voyelle++; //1 voyelle

//etc

}
Commenter la réponse de cs_TeniX
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 2 avril 2006 à 20:45
0
Utile
Pour une méthode performente, regrouper les méthode de BruNews et TeniX donc:

int n = 0;
char c[256];

//C'est incertain ici car scanf va arrêter au espace je crois
scanf("%s", chaine);
ou
gets(chaine);
// L'important est de récupérer la chaine de caractère complète

while(*c)
{
switch(*c)
{
case 'a': case 'e': case: 'i': case 'o': case 'u': case 'y': n++;
break;
//Meme chose pour les consonnes
}
c++;
}

___________________________________________
Les plus grands esprits trouvent toujours une solution
Commenter la réponse de SAKingdom
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 2 avril 2006 à 20:48
0
Utile
Oki je vien de tester. Utilise pas scanf, utilise gets pour récupérer toute la chaine.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Commenter la réponse de SAKingdom
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 2 avril 2006 à 20:49
0
Utile
Donc en gros pour reformuler car je vien de m'apercevoir que j'ai fait des erreures:

int n = 0;
char c[256];

gets(c);

while(*c)
{
switch(*c)
{
case 'a': case 'e': case: 'i': case 'o': case 'u': case 'y': n++;
break;
//Meme chose pour les consonnes
}
c++;
}

___________________________________________
Les plus grands esprits trouvent toujours une solution
Commenter la réponse de SAKingdom
micoo86 7 Messages postés dimanche 2 avril 2006Date d'inscription 4 avril 2006 Dernière intervention - 2 avril 2006 à 20:59
0
Utile
Merci pour votre aide.Je vien de tester le synthaxe mais il m'affiche toujours ce probleme " wrong type argument to increment"


____________________________________
Micoo ==> The Special Agent
____________________________________
Commenter la réponse de micoo86
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 2 avril 2006 à 21:03
0
Utile
int n = 0;
char c[256];

gets(c);

while(*c)
{
switch(*c)
{
case 'a': case 'e': case: 'i': case 'o': case 'u': case 'y': n++;
break;
//Meme chose pour les consonnes
}
*c++;
}

___________________________________________
Les plus grands esprits trouvent toujours une solution
Commenter la réponse de SAKingdom
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 2 avril 2006 à 21:03
0
Utile
char chaine[256], *c;
gets(chaine);
c = chaine;
etc...

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Commenter la réponse de BruNews
micoo86 7 Messages postés dimanche 2 avril 2006Date d'inscription 4 avril 2006 Dernière intervention - 2 avril 2006 à 22:43
0
Utile
Merci il fonctionne parfaitement


____________________________________
Micoo ==> The Special Agent
____________________________________
Commenter la réponse de micoo86

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.