Ou est l'erreur ?
datamakememade
-
sayrus86 -
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 ....
#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
-
Salut,
Pour commencer tu n'as pas allouer de la mémoire pour tes pointeurs -
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! -
Re,
Par exemplechar str1[50]; char str2[50];
ou#include stdlib.h char* str1; char* str2; str1 = malloc(50); str2 = malloc(50;)
-
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 .