REPROGRAMMER STRLEN ET STRCPY

Messages postés
42
Date d'inscription
dimanche 3 mars 2002
Statut
Membre
Dernière intervention
24 juin 2008
- - Dernière réponse : KissyFroth
Messages postés
38
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
7 avril 2007
- 8 déc. 2005 à 23:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10308-reprogrammer-strlen-et-strcpy

KissyFroth
Messages postés
38
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
7 avril 2007
-
Un tres grand merci à cette source : il y a parfois des petits détails sur lesquels on bute et qui vous empechent d'avancer : perso ca fai 1 heure que je cherche le caractere d'arret qui est donc '\0'. Maintenant je le saurais. Merci encore.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16 -
Salut,
pour myStrlen() le count ne sert à rien.
int myStrlen(const char *p)
{
char *c = p;
while(*c) c++;
return (c - p);
}
pour myStrcpy() tu peux faire idem.
Il faut toujours regarder la sortie ASM produite par le compilateur.
ciao...
glipper
Messages postés
246
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
11 septembre 2016
1 -
Reponse a Kikyo:
Ta methode marche... mais elle est + lentec (d'apres mes testes),
car faire une difference d'adresse (= de pointeur) prend enormement
de temps ... il faut diviser par le taille du type i.e. sizeof(char).
Peut-etre que ta methode est la meilleur pour un texte tres long...
cs_Azar
Messages postés
9
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
27 septembre 2003
-
pour strcpy tu pourrais aussi faire :
void myStrcpy(char* str1, char* str2){
while(*str1++=*str2++);
}
glipper
Messages postés
246
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
11 septembre 2016
1 -
juste pour dire que le " est le caractère d'arret (\0)
Mais il est pas passé quand je l'ai ecrit.