Chaine de caractère

Fermé
nicolas - 28 janv. 2008 à 08:51
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 - 28 janv. 2008 à 09:03
Bonjour,

mon programme, idoit afficher le nom, prénom, adresse.. qui ont été demandé à l'utilisateur! ( en c)

on peut me corriger!

merci

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define NOM 25
#define SEXE 2


/* fonctions*/

int demande_nom ( char *pnom)
int demande_prenom(char *pprenom )
int demande_sexe(char *psexe )
int demande_date()
int demande_adresse (char *prue,int *ppostal,char *plocalite)

/* fin fonction */

/* fonction principale*/
void main (void)

{

char pnom[NOM],char pprenom[NOM],char psexe [SEXE];
char prue,plocalite;
int ppostal,


printf(" voici ce que vous avez encodez:\n");
printf("\nNom:\n");
votre_nom= demande_nom();
printf("\nPrenom:\n");
votre_prenom= demande_prenom();
printf("\nSexe:\n");
votre_sexe= demande_sexe();
printf("\ndate de naissance:\n");
votre_date= demande_date();
printf("\ndomicilie a:\n");
votre_adresse = demande_adresse();


}

/* fin fonction principale*/

int demande_nom (char *pnom)/*demande le nom de l'utilisateur*/
{
int nbelem;
fflush(stdin);

for( nbelem=0;nbelem < (NOM-1) && (*pnom != '\n');nbelem++,pnom++)
{


do
{
printf(" entrez votre nom de famille\n");
*pnom=getchar();
touppper(*pnom);
}while((*pnom<'A') || (*pnom > 'Z') && (*pnom != '-'));

(*pnom-1)='\0';
}


}

int demande_prenom (char *pprenom)/* demande du prénom de l'utilisateur*/

{
int nbelem;
fflush(stdin);
for( nbelem=0;nbelem < (NOM-1) && (*pprenom != '\n');nbelem++,pprenom++)
{


do
{ printf(" entrez votre nom de prenom\n");
*pprenom=getchar();
touppper(*pprenom);

}while((*pprenom<'A') || (*pprenom> 'Z') && (*pprenom != '-'));

(*pprenom - 1) = '\0';
}



}

int demande_sexe(char *psexe)/*demande du sexe de l'utilisateur*/
{
int nbelem;
fflush (stdin);
for(nbelem=0;nbelem<(NOM-1) && (*psexe !='\n');nbelem++,psexe++)
{
do
{
printf("un homme ou une femme : tapez M/F\n");

*psexe=getchar();
toupper(*psexe);

}while ((*psexe != 'M') || (*psexe !='F'));

}
int demande_date()

{
int jour,annee;
int a = 1;
char mois;

nb_jours_mois[0]=31; //janvier
nb_jours_mois[1]=28; //février
nb_jours_mois[2]=31; //mars
nb_jours_mois[3]=30; //avril
nb_jours_mois[4]=31; //mai
nb_jours_mois[5]=30; //juin
nb_jours_mois[6]=31; //juillet
nb_jours_mois[7]=31; //août
nb_jours_mois[8]=30; //septembre
nb_jours_mois[9]=31; //octobre
nb_jours_mois[10]=30; //novembre
nb_jours_mois[11]=31; //decembre

while(a==1)
{

do
{
printf("Entrez le jour de votre naissance:\n ");
scanf("%d",&jour);
}while(jour<1 || jour>31);
do
{
printf("Entrez le mois de votre naissance:\n ");
scanf("%s",&mois);
}while(mois<1 || mois>12);
do
{
printf("Entrez l'annee de votre naissance:\n ");
scanf("%d",&annee);
}while(annee> 1000);
}

}
void demande_adresse(*prue,*ppostal,*plocalite)/*demande de l'adresse de l'utilisateur*/

{
int nbelem;

fflush(stdin);

for( nbelem=0;nbelem < (NOM-1) && (*pprue != '\n');nbelem++,pprue++)
{
do
{
printf(" entrez le nom de votre rue:\n");
*pprue=getchar();
touppper(*pprue);

}while((*pprue<'A') || (*pprue> 'Z') && (*pprue != '-'));

(*pprue - 1) = '\0';

}

do
{
printf("entrez votre code postal\n");
scanf("%d\n",&ppostal);
}while((ppostal< 1000) || (ppostal>5000));

for(nbelem=0;nbelem<(NOM-1) && (*plocalite !='\n');nbelem++,plocalite++)
{
do
{
printf(" entrez le nom de votre localite:\n");
*plocalite=getchar();
toupper(*plocalite);

}while((*plocalite<'A') || (*plocalite>'Z') && (*plocalite !='-'));

(*plocalite -1) = '\0';

}

//printf("%s%d%s\n",prue,ppostal,plocalite);









}
A voir également:

1 réponse

tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
28 janv. 2008 à 09:03
printf(" voici ce que vous avez encodez:\n"); ==> printf(" voici ce que vous avez encodé:\n"); c'est un participe passé !!!

do
{
printf(" entrez votre nom de famille\n");
*pnom=getchar();
touppper(*pnom);
}while((*pnom<'A') || (*pnom > 'Z') && (*pnom != '-'));

(*pnom-1)='\0';
}

Tu peux plus simplement saisir une chaîne directement :

do
{
printf(" entrez votre nom de famille\n");
gets( pnom);
strupr( pnom );
}

Sinon programmation un peu maladroite, mais il faut apprendre !!
0