A voir également:
- Chaine de caractere
- Caractère spéciaux - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Plus de chaine tv - Guide
5 réponses
Salut,
Si tu donnais au passage le language que tu utilises, je pense que ça pourrait aider aussi !
Si tu donnais au passage le language que tu utilises, je pense que ça pourrait aider aussi !
Sabetodo
Messages postés
127
Statut
Membre
3
je programme en C.
Une recherche qui a pris 4 secondes sur google m'a permis de trouver cela :
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15765-les-chaines-de-caracteres
Regarde chapitre manipulation des chaînes ou autre... D'ailleurs si tu programmes en c, je te conseil de lire le tuto intégralement.
Cordialement.
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15765-les-chaines-de-caracteres
Regarde chapitre manipulation des chaînes ou autre... D'ailleurs si tu programmes en c, je te conseil de lire le tuto intégralement.
Cordialement.
merci pour ton aide.je viens d'y jetter un coup d'oeil et je trouve cela interessant. Mais mon exo ne marche toujours pas.il affiche un segmentation fault .en fait je veux ecrire une fonction qui copie n caracteres d'une chaine dans une autre. La chaine de destination aura deja la memoire suffisante pour copier la chaine. Ajouter '\0' si n > à la longueur de la chaine.Ne pas ajouter '\0' si n < a la longueur de la chaine (car dest n'est pas cense pouvoir contenir plus de n octets)
Elle devra être prototypée de la façon suivante :
char *my_strncpy(char *dest, char *src, int n); voici mon code.
Elle devra être prototypée de la façon suivante :
char *my_strncpy(char *dest, char *src, int n); voici mon code.
int my_strlen(char *src)
{
int i=0;
while( src[ i ] != '\0' )
i++;
return (i);
}
char *my_strncpy(char *dest, char *src, int n)
{
int i;
while(src[i] !='\0')
{
dest[i] = src[i];
i++;
}
if( n>strlen(src))
{
dest[i] ='\0';
}
return(dest);
}
int main( void )
{
int n = 10;
char src[ ] = "epitech";
char dest[125] = "****";
printf("%s",my_strncpy(src,dest,n));
}
Tu manques trop de rigueur, je ne peux pas t'aider... quelques indices, car je n'ai plus d'ide d'installé pour vérifier :
Dans ton main
printf("%s",my_strncpy(src,dest,n));
puis dans ta fonction....
char *my_strncpy(char *dest, char *src, int n)
tu t'es pas planté dans l'ordre des arguments que tu envoies... src et dest...
Ensuite tjours dans ton main.... printf("%s",my_strncpy(src,dest,n));
Il te manquerais pas le "&" davant my_strncpy?!
Puis retour dans ta fonction *my_strncpy.... Si tu initialisais i à 0 ça ne lui ferait pas de mal ;-)
Bon courage, je passe la main :p
Cordialement.
Dans ton main
printf("%s",my_strncpy(src,dest,n));
puis dans ta fonction....
char *my_strncpy(char *dest, char *src, int n)
tu t'es pas planté dans l'ordre des arguments que tu envoies... src et dest...
Ensuite tjours dans ton main.... printf("%s",my_strncpy(src,dest,n));
Il te manquerais pas le "&" davant my_strncpy?!
Puis retour dans ta fonction *my_strncpy.... Si tu initialisais i à 0 ça ne lui ferait pas de mal ;-)
Bon courage, je passe la main :p
Cordialement.
Mais t'es malade ou koi? depuis quand on met & dans un printf pour afficher une chaine?je t'en prie va revoir tes cours. Et en plus, je t'ai pas demande de m'aider.si tu veux, tu m'aide, sinon je m'en fous.
si je suis sur ce forum, c'est parce que j'ai besoin d'aide comme tout le monde, nul n'est parfait mon gars.
j'essaie toujours de faire mon mieux.
si je suis sur ce forum, c'est parce que j'ai besoin d'aide comme tout le monde, nul n'est parfait mon gars.
j'essaie toujours de faire mon mieux.
Salut,
Dans ta fonction my_strncpy, c'est dommage d'utiliser strlen alors que tu t'es fait une jolie fonction my_strlen.
Attention à ta fonction m_strncpy, elle ne reproduit pas exactement le comportement de strncpy. La fonction doit remplir de 0 la chaîne dest si la chaîne source est inférieure à n.
Tu as également oublié d'initialiser i à 0 dans my_strncpy.
Dans la fonction main(), en appelant la fonction my_strncpy tu t'es trompé dans l'ordre des paramètres (inversion de dest et src).
N'oublie pas d'ajouter "return 0;" à la fin de ton programme.
Ca devrait mieux marcher.
Cdlt
Dans ta fonction my_strncpy, c'est dommage d'utiliser strlen alors que tu t'es fait une jolie fonction my_strlen.
Attention à ta fonction m_strncpy, elle ne reproduit pas exactement le comportement de strncpy. La fonction doit remplir de 0 la chaîne dest si la chaîne source est inférieure à n.
Tu as également oublié d'initialiser i à 0 dans my_strncpy.
Dans la fonction main(), en appelant la fonction my_strncpy tu t'es trompé dans l'ordre des paramètres (inversion de dest et src).
N'oublie pas d'ajouter "return 0;" à la fin de ton programme.
Ca devrait mieux marcher.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question