Chaine de caractère
nicolas
-
tatou_38 Messages postés 1954 Date d'inscription Statut Membre Dernière intervention -
tatou_38 Messages postés 1954 Date d'inscription Statut Membre Dernière intervention -
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);
}
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:
- Chaine de caractère
- Caractère spéciaux - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Plus de chaine tv - Guide
1 réponse
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 !!
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 !!