Ou est l'erreur ?

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 ....
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Modérateur
    Salut,

    Pour commencer tu n'as pas allouer de la mémoire pour tes pointeurs
    1. ou ca dan la main fucntion ?? j'ai pas compri ...késk je devré faire?
  2. 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!
    1. aprés avoir compiler on menvoi un mesage komme koi ..Rencontré une erreur et doi fermé
  3. Modérateur
    Re,

    Par exemple
    char str1[50]; 
    char str2[50]; 
    ou
    #include stdlib.h
    
    char* str1; 
    char* str2; 
    
    str1 = malloc(50);
    str2 = malloc(50;)
    

    1. 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 .