Créer une fonction qui affiche un a un des caractère d'une chain
elb
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
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:
- Écrire une fonction qui affiche le caractère passé en paramètre
- Fonction si et - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Ecrire en gras sur whatsapp - 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,