Créer une fonction qui affiche un a un des caractère d'une chain
elb
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai soucis j'ai du mal a crée une fonction qui affiche un à un les caractère d'une chaîne de caractère !est ce que je peux avoir des explications tout en sachant que pour afficher j'utilise une fonction créée en interne voici mon code
void my_putchar(char c)
{
write(1,&c,1);
}
void my_putstr(char *str)
{
int i;
char *str="salut";
for(i=0;i<9;++i)
{
my_putchar(i);
}
}
int main()
{
char str;
my_putstr(&str);
my_putchar(str);
return(0);
}
j'ai soucis j'ai du mal a crée une fonction qui affiche un à un les caractère d'une chaîne de caractère !est ce que je peux avoir des explications tout en sachant que pour afficher j'utilise une fonction créée en interne voici mon code
void my_putchar(char c)
{
write(1,&c,1);
}
void my_putstr(char *str)
{
int i;
char *str="salut";
for(i=0;i<9;++i)
{
my_putchar(i);
}
}
int main()
{
char str;
my_putstr(&str);
my_putchar(str);
return(0);
}
A voir également:
- Write(1, &c, 1)
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un lien pour partager des photos - Guide
- Caractère ascii - Guide
- Créer un compte gmail - Guide
1 réponse
Bonsoir,
Plein de problèmes.
write(1,&c,1);
Pourquoi write() ? getchar(c); est beaucoup mieux.
char *str="salut";
Tu surcharges str passé en argument. Ne serait-ce pas plutôt le paramètre que tu souhaites afficher ? Donc à retirer.
for(i=0;i<9;++i)
Pourquoi 9 ?
my_putchar(i);
Pourquoi i ? ce n'est pas le nombre que tu veux afficher mais plutôt str[i].
char str;
Plutôt : char *str; c'est une chaîne que tu veux afficher, pas un caractère.
my_putstr(&str);
Sémantiquement ok. Mais str n'est pas initialisé. De plus, il ne se terminera pas par \0. Donc segfault possible.
my_putchar(str);
str n'est pas initialisé. Il n'y a donc rien de terrible à afficher.
Cdlt,
Plein de problèmes.
write(1,&c,1);
Pourquoi write() ? getchar(c); est beaucoup mieux.
char *str="salut";
Tu surcharges str passé en argument. Ne serait-ce pas plutôt le paramètre que tu souhaites afficher ? Donc à retirer.
for(i=0;i<9;++i)
Pourquoi 9 ?
my_putchar(i);
Pourquoi i ? ce n'est pas le nombre que tu veux afficher mais plutôt str[i].
char str;
Plutôt : char *str; c'est une chaîne que tu veux afficher, pas un caractère.
my_putstr(&str);
Sémantiquement ok. Mais str n'est pas initialisé. De plus, il ne se terminera pas par \0. Donc segfault possible.
my_putchar(str);
str n'est pas initialisé. Il n'y a donc rien de terrible à afficher.
Cdlt,