Programme de conjugaison en C help

Résolu/Fermé
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008 - 9 janv. 2008 à 22:01
 riadh - 17 déc. 2010 à 18:38
Bonjour,

Bonne Anne a tout le monde =D

Bon passons aux choses serieuses :p

j'ai un petit probleme: je veux creer un programme qui me demande de rentrer un verbe du 1e rgroupe et qui verifie cela (terminaison par "er") ma fonction donne ça

int saisie()
{
int term;
char verbe[20];

do
{
printf("saisir verbe du 1er groupe\n");
scanf("%s",verbe);

term=strlen(verbe);
printf("\n%c %c\n",verbe[term-2],verbe[term-1]); */ ça c'est un test */
}
while( ((verbe[term-2]) !="e") && ((verbe[term-1]) !="r")); /* je soupçonne que c'est ici que sa plante */

printf("\n%s est un verbe du 1er groupe\n",verbe);

return(0);
}

pourquoi sa marche pas T_T
Merci de vos reponses

15 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 janv. 2008 à 22:36
je sais pas comment tu fais chez moi ça marche...
while( ((verbe[term-2]) !='e') || ((verbe[term-1]) !='r'));

ex : verbe du premier groupe
saisir verbe du 1er groupe
parler

e r

parler est un verbe du 1er groupe

Process returned 0 (0x0)   execution time : 4.879 s
Press any key to continue.

verbe du deuxieme groupe
saisir verbe du 1er groupe
finir

i r
saisir verbe du 1er groupe
choisir

i r
saisir verbe du 1er groupe
chanter

e r

chanter est un verbe du 1er groupe

Process returned 0 (0x0)   execution time : 17.628 s
Press any key to continue.
3
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 120
9 janv. 2008 à 22:08
tu fais

if (strchr( verbe , "er"))
printf( "%s est un verbe du premier groupe\n" , verbe );
else
printf( "%s n'est pas un verbe du premier groupe\n" , verbe );

C'est pas plus compliqué !
0
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008
9 janv. 2008 à 22:17
je sais pas utiliser strchr T_T il me met une erreur "wanted 'int',got signed char *'"

mais sinon ma manière n'est pas correcte???
0
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 120
9 janv. 2008 à 22:20
mea culpa, je me suis gourancé, il faut utiliser strstr() et non strchr(), voillà pourquoi !

strchr() cherche l'aparition d'un caractère dans une chaîne, strstr() celle c'une chaîne dans une chaîne.

Ta manière est peut-être correcte, mais pourquoi vouloir réinventer l'eau chaude ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 janv. 2008 à 22:23
ton programme est bon il suffit de remplacer les deux " par des quote '
comme ça
while( ((verbe[term-2]) !='e') && ((verbe[term-1]) !='r'));

les " c'est pour plusieurs caracteres a la suite pour un seul caractere c'est ' qu'il faut utilisé ;)
0
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008
9 janv. 2008 à 22:27
mais du coup si on tombe sur le verbe "verdir" il me met que c'est un 1er groupe alors que c'est pas vrai :p
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 janv. 2008 à 22:33
remplace le && par ||
0
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008
9 janv. 2008 à 22:33
ouinn sa marche poas non plus avec les quote il me remet dans la boucle meme quand c'est un verbe du 1er groupe
0
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008
9 janv. 2008 à 22:35
meme en remplaçant les && par des || sa marche pas j'y arriverai jamais lol en tout cas merci pour l'effort que tu te donnes a m'aider =D
0
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008
9 janv. 2008 à 22:42
whaouuuuu merci sa marche ouuuuf (c'est moi j'ai mal recopier) sa fait plus d'une heure que je suis sue ce probleme mes yeux commencent a se fatiguer lol *_*
Merci encore
0
ramune Messages postés 10 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 25 mars 2008
9 janv. 2008 à 22:48
j'ai encore une petite question ^_^

si je veux utiliser un malloc pour creer un tableau dynamique (parceque verbe[20] sa fait pas classe :p ) comment je doit m'y prendre?
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 janv. 2008 à 22:54
d'abord declaré verbe
char *verbe;

ensuite pour allouer
verbe = (char *) malloc (20 * sizeof(char));

bonne chance ;)
0
il faut mettre un "virgule" entre '% c'
0
ou essaye de le faire dans un tableau de chaine de caractére
0
puis test!! :)))
0