othkreen
Messages postés5Date d'inscriptionsamedi 12 mai 2007StatutMembreDernière intervention30 septembre 2007
-
13 mai 2007 à 00:47
othkreen
Messages postés5Date d'inscriptionsamedi 12 mai 2007StatutMembreDernière intervention30 septembre 2007
-
13 mai 2007 à 05:54
bonjour a tous,
je suis en train d'ecrire une petite fonction en C qui affiche les 3 premiers caracteres des chaine de caracteres (sans un utiliser des fonctions de la bibliotheque string.h) contenu dans un tableau statique.
voici la déclaration: char* jour[7]. ainsi, jour[0]="lundi", jour[1]="mardi"...
au lieu d'afficher lundi, mardi, mercdri.... dimanche. je voudrais afficher lun, mar....dim
mais j'arrive pas. lorsque j'execute lpar exemple l'instruction printf("%s", jour[6]+3), il efface plutot les 3 premiers carcarteres pour m'affcicher "anche"
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 13 mai 2007 à 01:54
/* autre alternative */
#include
<stdio.h>
/* printf() */
/* optionnel */
#define
DIMANCHE 0
#define
LUNDI 1
#define
MARDI 2
#define
MERCREDI 3
#define
JEUDI 4
#define
VENDREDI 5
#define
SAMEDI 6
/* pourrait être dynamique pour différentes langues */
static
struct
{
const
char
* nomLong;
const
char
* nomCourt;
}jours[
/* 0-6 */
] =
{
{
"dimanche"
,
"dim"
},
{
"lundi"
,
"lun"
},
{
"mardi"
,
"mar"
},
{
"mercredi"
,
"mer"
},
{
"jeudi"
,
"jeu"
},
{
"vendredi"
,
"ven"
},
{
"samedi"
,
"sam"
}
};
/* pas vraiment utile puisqu'il y a toujours 7 jours dans une semaine =_= */
#define
NOMBRE_DE_JOUR (
sizeof
(jours) /
sizeof
(jours[ 0 ]))
int
main()
{
int
i;
for
(i = 0; i < NOMBRE_DE_JOUR; i++)
{
printf(
"%d) %s (%s)\n"
, i, jours[ i ].nomLong, jours[ i ].nomCourt);
}
printf(
"\n%s\n"
, jours[ MERCREDI ].nomLong);
return
0;
}
je crois que c'est assez clair, pas la peine de commenter?
pour maladededadedido.... moi j'irais plutôt avec un « char * jours[7] = {..., ..., ...}; » ou un « const * jours[] = {...}; », etc. peu importe ... assignation dès la déclaration, et constant ...
printf("%s", jour[6]+3) << en fait ce que tu fais c'est que tu te déplaces de 3 casses vers la droite, donc tu sautes les trois premiers caractères, ton « jour[6] » est une chaine « char * »