Δημοσιεύτηκε: 30 Αύγ 2011, 16:32
από stamatiou
migf1 έγραψε:Άμα μου κάνεις ευανάγνωστο τον κώδικα θα το κοιτάξω :lol:

stamatiou έγραψε:Λοιπόν εγώ προσπάθησα το s_compare αλλά έχω κάτι πρωτόγνωρα erros.
Spoiler: show
Κώδικας: Επιλογή όλων
int s_compare(char string1[],char string2[]) {
int i=0,len1,len2;
if((!string1[0]) || (!string2[0])) return 2;
for(len1=0;string1[len1];len1++);
for(len2=0;string2[len2];len2++);
if(len1 == len2) {
for(i=0;(string1[i] != string2[i]) && (string1[i]);i++);
if(string1[i+1] = '\0') {
return 0;
}else {
if(string1[i] < string2[i]) return -1;
else if(string1[i] > string2[i]) return 1;
}

}else {
for(i=0;(string1[i] != string2[i]) && (string1[i]);i++);
if(string1[i+1] = '\0') return 0;
else {
if(string1[i] < string2[i]) return -1;
else if(string1[i] > string2[i]) return 1;
}
}
return 3;
}

Και τα errors:
Spoiler: show
Κώδικας: Επιλογή όλων
s_compare.c: In function ‘s_compare’:
s_compare.c:10: warning: suggest parentheses around assignment used as truth value
s_compare.c:19: warning: suggest parentheses around assignment used as truth value

και όταν εκτελώ μου βγάζει segmentaion fault :problem:

Οκ τον αραίωσα στις παρενθέσεις και στα =.
Spoiler: show
Κώδικας: Επιλογή όλων
int s_compare ( char string1[], char string2[] ) {
int i = 0, len1, len2;
if ( ( !string1[0] ) || ( !string2[0] ) ) return 2;
for ( len1 = 0 ; string1[len1]; len1++ );
for ( len2=0; string2[len2]; len2++ );
if ( len1 == len2 ) {
for( i=0; ( string1[i] != string2[i] ) && ( string1[i] );i++ );
if ( string1[i+1] = '\0' ) {
return 0;
}else {
if ( string1[i] < string2[i] ) return -1;
else if ( string1[i] > string2[i] ) return 1;
}

}else {
for ( i=0; ( string1[i] != string2[i] ) && ( string1[i] ); i++);
if ( string1[i+1] = '\0' ) return 0;
else {
if ( string1[i] < string2[i] ) return -1;
else if ( string1[i] > string2[i] ) return 1;
}
}
return 3;
}