Problème en c

bonjour
voici mon programme qui demande nom, prenom, sexe et date et doit faire ensuite 140186JOBNAT

si une fille né le 14 janvier 1984; JOBE Natalie

j'ai un problème pour former "140186JOBNAT"

on pourrait m'aider ?
merci

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

int nom ( char *nom)
int prenom(char *prenom )
int sexe(char *sexe )
int jour(int *jourN)
int mois( char *moisN)
int annee ( int *anneeN);

//void matricule (char *nom,char *prenom,char *sexe)

void main (void)

{
char nom[NOM],char prenom[NOM],char sexe [SEXE];
int jourN,anneeN;
char moisN;

//matricule1= matricule();
}

int dnom (char *pnom)
{
int nbelem;
fflush(stdin);

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

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

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

(*nom-1)='\0';
}
return nom

}

int prenom (char *prenom)

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

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

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

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

return pprenom

}

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

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

return sexe

}

int jour(int *jourN)

{
int c=1;

while(c==1)
{

do
{
printf("Entrez le jour de votre naissance: ");
scanf("%d",&jourN);

}while(jourN<1 || jourN>31);
}
}

int mois(char *moisN)
{

int c=1,mois[12];

while(c==1)
{
do
{
printf("Entrez le mois de votre naissance: ");
scanf("%c",&moisN);

}while((moisN<1) || (moisN>12));

}

}

int annee (int anneeN)

{

int c=1;

while (c==1)
{
do
{
printf("Entrez l'annee de votre naissance: ");
scanf("%d",&anneeN);

}while(anneeN>1900);
}

}

//void matricule(char *nom,char *prenom,char *sexe, int *jourN,int *anneeN, char *moisN)
{

int n;

char *strncpy (char *copie, char *nom,int 4);

}

}
Configuration: Windows XP
Firefox 2.0.0.11

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. bonjour,

    et si tu utilisait strcat() ??

    dans le cas
    nom = "toto"
    prenom = "marcel"

    tu fais un char* matricule

    tu initialise matricule à " " (strset par exemple)

    ensuite
    strcat(matricule, nom)
    strcat(matricule, prenom)
    

    1. ah oui je n'y avais pas pensé c'est plus facile, je vais essayer de faire ça merci!!
      1. Mais c'est tres facile!!
        Mr. sfel vous à donner la fonction 'strcat' (String cat). cette dernière vous facilte la décomposition des chaines.
        pour les entiers (Mois et année) vous pouver faire le Casting en String (exmp var=""+jour) puis vous pouvez utiliser la fonction
        strcat("","");
        pour resoudre le probleme le Mois vous pouvez lire les 2 premier caractères et vous pouvez uiliser aussi un tableau String de taille 12
        t[0]="JANVIER";

        remarque: c'est mieux de refaire tous (votre code). cette tache et mieux facile que tu le crois.
        dans votre example je crois qu'il est n'est pas necessaire d'étuliser des fonctions.
        1. et la fonction "strncat" , on peut l'utiliser si on veut prendre qu'une partie, non?

          char *strncat ( char *c1, char *c2, size)
          1. oui

            et Nader, qui te dis que c'est Mr sfel ??
            je suis d'origine brésilienne, ainsi, l'on écrit Mr-Mme sfel ^^

            et sinon c'es tbien d'utiliser des fonctions pour éclaircir ton code, mais trop de fonction tue les fonctions...
            1. Bonjour,

              Ou avec sprintf

              nom[3] = '\0';
              prenom[3] = '\0';
              
              sprintf( matricule, "%d%d%d%s%s", jour, mois, annee, nom, prenom );
              


              M.
              1. bonjour ? Sfel
                j'ai pas compris ton message,
                d'aprés les intervention dans ce forum, je te trouve que tu aime language c.
                et tu ne veux pas q tu trouve quelq'un meiu q toi.
                Qcq tu fais dans ta vie?
                bon courage.
                1. salut, je t'avouerais que moi non plus je n'ai pas compris ton message, il y a des mots en trop dans tes phrases. ^^

                  Et moi, je disait juste que j'étais Mme et non pas Mr.