Chaine de caractére
Résolu
sifane.a
Messages postés
16
Statut
Membre
-
sifane.a Messages postés 16 Statut Membre -
sifane.a Messages postés 16 Statut Membre -
Bonjour,
bonsoir:
svp je suis coincé dans une chose ke je trouve vraiment stupide..
chui entrain de faire un programme en c.
j'execute,j'entre mes valeurs,j'entre une valeur noté comme une chaine de caractére (ex:du bois neuf)
et kand j'affiche ,ca m'affiche po tt la chaine ke jé voulu,la premiére moitié réste dans ma variable mais la deuxiéme s'affecte a ma prochaine variable,mais kand je met un mot comme(neuf) ca marche bien puise kilé tt seul.
aider moi svp.
(si ma question n'est pa claire veulliez me le dire pour ke je vs envois mon code)
merci.
bonsoir:
svp je suis coincé dans une chose ke je trouve vraiment stupide..
chui entrain de faire un programme en c.
j'execute,j'entre mes valeurs,j'entre une valeur noté comme une chaine de caractére (ex:du bois neuf)
et kand j'affiche ,ca m'affiche po tt la chaine ke jé voulu,la premiére moitié réste dans ma variable mais la deuxiéme s'affecte a ma prochaine variable,mais kand je met un mot comme(neuf) ca marche bien puise kilé tt seul.
aider moi svp.
(si ma question n'est pa claire veulliez me le dire pour ke je vs envois mon code)
merci.
A voir également:
- Chaine de caractére
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Chaine tnt gratuite sur mobile - Guide
4 réponses
forcement le scanf s'arrete lorsqu'il rencontre un espace faut que tu utilise fgets si tu veux stocker des chaine avec des espace
bon je vois que tu as pas bien compris comment s'utilise fgets poste ton code je vais te donné un exemple
#include<stdio.h>
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets("%s",&tab[i].adresse.quartier);
printf("la ville\n");
fgets("%s",&tab[i].adresse.ville);
printf("le pays\n");
fgets("%s",&tab[i].adresse.pays);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets("%s",&tab[i].adresse.quartier);
printf("la ville\n");
fgets("%s",&tab[i].adresse.ville);
printf("le pays\n");
fgets("%s",&tab[i].adresse.pays);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
le fgets prend pas les meme parametre que le scanf c'est pour ça que t'as des erreurs
voici comment tu doit faire par exemple pour le premier
voici comment tu doit faire par exemple pour le premier
fgets(tab[i].adresse.quartier,40,stdin);
est ce ke tu a executé mon preogramme?
kand il arrive a "quartier",il la passe et me demande d'entrer la ville,voila mon nouveau code:
#include<stdio.h>
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets(tab[i].adresse.quartier,40,stdin);
printf("la ville\n");
fgets(tab[i].adresse.ville,20,stdin);
printf("le pays\n");
fgets(tab[i].adresse.pays,20,stdin);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
kand il arrive a "quartier",il la passe et me demande d'entrer la ville,voila mon nouveau code:
#include<stdio.h>
#include<string.h>
#define etd 200
typedef struct dateNaissance DATE;
struct dateNaissance
{
int jour;
int mois;
int annee;
};
typedef struct lAdresse ADRESSE;
struct lAdresse
{
char maison[10];
char rue[10];
char quartier[40];
char ville[20];
char pays[20];
};
typedef struct etudiant E;
struct etudiant
{
char nom[15];
char prenom[15];
DATE date;
ADRESSE adresse;
};
main()
{
E tab[etd];
int i;
int n;
printf("donner le nombre des etudiants:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("nom:\n");
scanf("%s",&tab[i].nom);
printf("prenom:\n");
scanf("%s",&tab[i].prenom);
printf("jour naissance:\n");
scanf("%d",&tab[i].date.jour);
printf("mois:\n");
scanf("%d",&tab[i].date.mois);
printf("annee:\n");
scanf("%d",&tab[i].date.annee);
printf("l'adresse:\n");
printf("numero de la maison:\n");
scanf("%s",&tab[i].adresse.maison);
printf("la rue:\n");
scanf("%s",&tab[i].adresse.rue);
printf("le quartier:\n");
fgets(tab[i].adresse.quartier,40,stdin);
printf("la ville\n");
fgets(tab[i].adresse.ville,20,stdin);
printf("le pays\n");
fgets(tab[i].adresse.pays,20,stdin);
}
for(i=0;i<n;i++)
{
printf(" les information de %s\n",tab[i].nom);
printf("son nom:%s\n",tab[i].nom);
printf("son prenom:%s\n",tab[i].prenom);
printf("le jour de naissance:%d\n",tab[i].date.jour);
printf("le mois de naissance:%d\n",tab[i].date.mois);
printf("l'annee de naissance:%d\n",tab[i].date.annee);
printf("son domicile est:\n");
printf("n'%s,rue %s, %s, %s, %s\n",tab[i].adresse.maison,tab[i].adresse.rue,tab[i].adresse.quartier,tab[i].adresse.ville,tab[i].adresse.pays);
}
}
regarde le prototype
http://www.linux-kheops.com/doc/man/manfr/man-ascii-0.9/man3/fgets.3.txt.html
jé remplacé scanf par fgets et ca a fouaré ,je crois ke stdio.h ne la reconé po