Problème en c

debutant -  
sfel Messages postés 1645 Statut Membre -
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

  1. sfel Messages postés 1645 Statut Membre 430
     
    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)
    

    0
  2. debutant
     
    ah oui je n'y avais pas pensé c'est plus facile, je vais essayer de faire ça merci!!
    0
  3. sfel Messages postés 1645 Statut Membre 430
     
    de rien
    0
  4. extra.Nader Messages postés 9 Statut Membre
     
    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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. joy
     
    et la fonction "strncat" , on peut l'utiliser si on veut prendre qu'une partie, non?

    char *strncat ( char *c1, char *c2, size)
    0
  7. sfel Messages postés 1645 Statut Membre 430
     
    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...
    0
  8. Mahmah Messages postés 497 Statut Membre 125
     
    Bonjour,

    Ou avec sprintf

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


    M.
    0
  9. extra.Nader Messages postés 9 Statut Membre
     
    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.
    0
  10. sfel Messages postés 1645 Statut Membre 430
     
    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.
    0