Ou est l'erreur ?

datamakememade -  
 sayrus86 -
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. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Pour commencer tu n'as pas allouer de la mémoire pour tes pointeurs
    0
    1. datamakememade
       
      ou ca dan la main fucntion ?? j'ai pas compri ...késk je devré faire?
      0
  2. xav3601 Messages postés 3390 Statut Membre 312
     
    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
    1. datamakememade
       
      aprés avoir compiler on menvoi un mesage komme koi ..Rencontré une erreur et doi fermé
      0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

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

    0
  4. sayrus86
     
    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