Ou est l'erreur ?

Fermé
datamakememade - 3 déc. 2008 à 13:19
 sayrus86 - 3 déc. 2008 à 14:03
Bonjour,voici un code pr comparer deux chaines:


#include<stdio.h>
#include"myString.h"
int main (){
char* str1;
char* str2;
char result;
printf("Enter string1:\n");
scanf("%s",str1);
printf("Enter string2:");
scanf("%s",str2);
result=myStrCmp(str1,str2);
if(result==1)
printf(" same");
else
printf(" different");
}
int myStrCmp(char* str1, char* str2){
int i;

if (myStrLen(str1) - myStrLen(str2))

return(1);

for ( i = 0 ; i < myStrLen(str1) ; i++ ) {
if (*(str1+i) - *(str2+i))
return(1);
}

return(0);
}

le programe menvoi un message d"erreur aprés avoir enter la deuximém chaine et se ferme ....

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 déc. 2008 à 13:53
Salut,

Pour commencer tu n'as pas allouer de la mémoire pour tes pointeurs
0
datamakememade
3 déc. 2008 à 13:56
ou ca dan la main fucntion ?? j'ai pas compri ...késk je devré faire?
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
3 déc. 2008 à 13:59
Quel message d'erreur?

ensuite cette ligne ne sers a rien:
if (myStrLen(str1) - myStrLen(str2))
et enfin tu declare ton result en char et tu t'en sers comme d'un int!
0
datamakememade
3 déc. 2008 à 14:02
aprés avoir compiler on menvoi un mesage komme koi ..Rencontré une erreur et doi fermé
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 déc. 2008 à 14:01
Re,

Par exemple
char str1[50]; 
char str2[50]; 
ou
#include stdlib.h

char* str1; 
char* str2; 

str1 = malloc(50);
str2 = malloc(50;)

0
salut tu doit d'abord allouer de l'espace memoire pour tes deux pointeurs .

char * str1=(char*) MALLOC (la taille de la chaine en octets);

meme chose pour str2 .
0