zinotron
Messages postés65Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention11 septembre 2004 8 juil. 2004 à 00:06
Mais pourquoi vous avez ecris des trucs de malades incomprehensibles ?
J'y capte rien a ta source djl ...
enfin, si, un peu maintenant ...
mais je ne savais pas qu'on avait le droit de faire un for sans variable ...
en tout cas, merci a tous :-)
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 7 juil. 2004 à 20:59
ok merci djl...
++
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 7 juil. 2004 à 20:54
les code condensée (ok c'est pas le meilleur exemple) et puis surtout quand c'est pre ansi (on appel c k&r le c pre ansi)
c'est pour ca que j'ai pas mi les const non plus, j'aurais mem peu ecrire avec passage en parametre à la k&r et la regle du int implicite
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 7 juil. 2004 à 20:37
Pourquoi appelles tu ca le style k&r (Kernighan et Ritchie je suppose..) ??
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 7 juil. 2004 à 20:35
dans le style k&r, code condensé avec boucle for
int strcmp(char *s, char *t)
{
for ( ; *s == *t; s++, t++)
if (*s == '\0')
return 0;
return *s - *t;
}
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 7 juil. 2004 à 14:01
bin ... bis ... (g réindenté ton code avant de lire et commenter)
neo_00110010101
Messages postés360Date d'inscriptionsamedi 27 septembre 2003StatutMembreDernière intervention30 mai 2006 7 juil. 2004 à 12:18
Voilà le code (mais sans les corrections de BlackGoddess, ça serait trop facile ^^)
#include <stdlib.h>
void strcmp(char*,char*);
int main(void)
{
char chaine1[255],chaine2[255];
int res = 0;
printf("Comparateur de Chaine par MoI :p \n");
printf("Rentrez la premiere chaine\n");
scanf("%s",chaine1);
printf("Rentrez la seconde chaine\n");
scanf("%s",chaine2);
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 7 juil. 2004 à 01:00
Comme tu peux le voir, ta source n'est pas tres bien passé...Si tu pouvais rectifier ceci, merci ;)
Pour ce ki est du code en lui mm, une fonction de comparaison de ce genre se code tres facilement, et en kelk lignes, or ici, ta fonction m'a l'air bien grande kan mm ! regarde la source de la veritable fonction strcmp, et tu t'apercevras ke celle ci travaille directement sur les pointeurs sans ne faire aucune comparaison ! Sinon, jte dirai de continuer a poster des sources de ce genre, car il faut s'entrainer pour progresser, et c'est pas tt seul dans son coin kon pourra apprendre !! Donc n'hésite pas a poster d'autres source...
8 juil. 2004 à 00:06
J'y capte rien a ta source djl ...
enfin, si, un peu maintenant ...
mais je ne savais pas qu'on avait le droit de faire un for sans variable ...
en tout cas, merci a tous :-)
7 juil. 2004 à 20:59
++
7 juil. 2004 à 20:54
c'est pour ca que j'ai pas mi les const non plus, j'aurais mem peu ecrire avec passage en parametre à la k&r et la regle du int implicite
strcmp(s, t)
char s[]; char t[];
{
for ( ; *s == *t; s++, t++)
if (*s == '\0')
return 0;
return *s - *t;
}
7 juil. 2004 à 20:37
7 juil. 2004 à 20:35
int strcmp(char *s, char *t)
{
for ( ; *s == *t; s++, t++)
if (*s == '\0')
return 0;
return *s - *t;
}
7 juil. 2004 à 14:01
7 juil. 2004 à 12:18
#include <stdlib.h>
void strcmp(char*,char*);
int main(void)
{
char chaine1[255],chaine2[255];
int res = 0;
printf("Comparateur de Chaine par MoI :p \n");
printf("Rentrez la premiere chaine\n");
scanf("%s",chaine1);
printf("Rentrez la seconde chaine\n");
scanf("%s",chaine2);
res = strcmp(chaine1,chaine2);
if(res == 0)
{
printf("Chaines identiques\n");
}
else
{
printf("Chaines differentes\n");
}
}
int strcmp(char* chaine1, char* chaine2)
{
int compteur1 0, compteur2 0;
int i = 0;
while(chaine1[compteur1] != '\0')
{
compteur1++;
}
while(chaine2[compteur2] != '\0')
{
compteur2++;
}
if(compteur1 != compteur2) return(compteur1-compteur2);
else
{
while((chaine1[i] == chaine2[i]) && (i != compteur1))
i++;
if( i == compteur1) return 0;
else return(i-compteur1);
}
}
A toi de corriger maintenant !
7 juil. 2004 à 09:48
int strcmp(const char*, const char*);
printf est défini dans stdio.h (et pas stdlib.h)
3 boucles pour une fonction comme ca c'est trop !!
int strcmp(const char *str1, const char *str2)
{
int ret;
while(!(ret = (*str1 - *str2)) && *str1)
{
str1++;
str2++;
}
return ret;
}
7 juil. 2004 à 01:00
Pour ce ki est du code en lui mm, une fonction de comparaison de ce genre se code tres facilement, et en kelk lignes, or ici, ta fonction m'a l'air bien grande kan mm ! regarde la source de la veritable fonction strcmp, et tu t'apercevras ke celle ci travaille directement sur les pointeurs sans ne faire aucune comparaison ! Sinon, jte dirai de continuer a poster des sources de ce genre, car il faut s'entrainer pour progresser, et c'est pas tt seul dans son coin kon pourra apprendre !! Donc n'hésite pas a poster d'autres source...
++
Alhexman