no save
Assistance
Achat
News

Forum | programmation
Chaine de caractére : problème
lami20j, le dim. 26 févr. 2006 à 14:34:10
Salut,

je ne suis pas vraiment content de ce que j'ai fait mais ça marche, donc si tu veux ce n'est pas très propre (j'ai fait quelques copier coller et j'ai ajouter 2 tableaux et 2 condition if - en gros le code a été multiplié par 2) en plus je n'ai pas assez de temps.

En plus (je ne suis pas francophone) je ne sais pas si existe un verbe qui commence avec une voyelle et se fini avec ger. Donc on peux enlever la condition pour ger dans la 1ère partie où on teste les voyelles.


Tu peux tester.
Il faut aussi traiter le cas des verbes comme envoyer.
[lamitest@localhost corbeille]$ ./conjugaison
verb : envoyer
la conjugaison du verbe au present est:
j' envoye
tu envoyes
il envoye
nous envoyons
vous envoyez
ils envoyent
la conjugaison du verbe au futur est:
j' envoyerai
tu envoyeras
il envoyera
nous envoyerons
vous envoyerez
ils envoyeront
la conjugaison du verbe a l'imparfait est:
j' envoyais
tu envoyais
il envoyait
nous envoyions
vous envoyiez
ils envoyaient
[lamitest@localhost corbeille]$

En fait si tu relis le code tu peux le arranger mieux que je l'ai fait. Compile et teste
#include <stdio.h>
#include <string.h>
main()
{
/* Déclarations */
/* Sujets et terminaisons */
char suj1[6][5] = {"je","tu","il","nous","vous","ils"};
char suj2[6][5] = {"j'","tu","il","nous","vous","ils"};
char term1[6][5] = {"e","es","e","ons","ez","ent"};
char term2[6][7] = {"erai","eras","era","erons","erez","eront"};
char term3[6][7] = {"ais","ais","ait","ions","iez","aient"};
char term4[6][7] = {"e","es","e","eons","ez","ent"}; /*cas nous mangeons*/
char term5[6][7] = {"eais","eais","eait","ions","iez","eaient"};/* imparfait */
char verb[20]; /* chaîne contenant le verbe */
int l; /* longueur de la chaîne */
int i; /* indice courant */
/* Saisie des données */
printf("verb : ");
scanf("%s", verb);
/* Contrôler s'il s'agit d'un verbe en 'er' */
l=strlen(verb);
if ((verb[l-2] != 'e') || (verb[l-1] != 'r'))
printf("\"%s\" n'est pas un verbe du premier groupe.\n",verb);
else
{
if((verb[0] == 'a') || (verb[0] == 'e') || (verb[0] == 'i') ||
(verb[0] == '0') || (verb[0] == 'u') )
/* les verbes en voyelles sans les accents*/
{
/* Couper la terminaison 'er'. */
verb[l-2]='\0';
/* Conjuguer ... */
printf("la conjugaison du verbe au present est:\n");
if ((verb[l-3] == 'g')){/* les verbes en ger */
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term4[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term1[i]);
}
}
verb[l-2]='\0';
printf("la conjugaison du verbe au futur est:\n");
for(i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term2[i]);
}
verb[l-2]='\0';
printf("la conjugaison du verbe a l'imparfait est:\n");
if(verb[l-3] == 'g'){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term5[i]);
}

}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj2[i], verb, term3[i]);
}
}
return 0;
}
else
{
/* Couper la terminaison 'er'. */
verb[l-2]='\0';
/* Conjuguer ... */
printf("la conjugaison du verbe au present est:\n");
if ((verb[l-3] == 'g')){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term4[i]);
}
}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term1[i]);
}
}
verb[l-2]='\0';
printf("la conjugaison du verbe au futur est:\n");
for(i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term2[i]);
}
verb[l-2]='\0';
printf("la conjugaison du verbe a l'imparfait est:\n");
if(verb[l-3] == 'g'){
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term5[i]);
}

}
else
{
for (i=0; i<6; i++)
{
printf("%s %s%s\n",suj1[i], verb, term3[i]);
}
}
return 0;
}
}
}

Précédentéma
févr. 06
lami20j
févr. 06
Suivant
REPONSES
lami20j
févr. 06
lami20j
févr. 06
lami20j
févr. 06
éma
févr. 06
lami20j
févr. 06
éma
févr. 06
lami20j
févr. 06
lami20j
févr. 06
simon
févr. 06
éma
févr. 06
Version Web
Réalisé par RedShift
no save