Δημοσιεύτηκε: 30 Αύγ 2011, 15:33
Για αυτό είχα πει να ξεκινούσαμε με την strncmp πρώτα (αν κι εκείνη έχει στύψιμο μυαλού για τον έλεγχο των διάφορων περιπτώσεων)...
Θέλετε πριν συνεχίσουμε με αυτές τις δυο, να κάνετε την σκέτη strcmp (χωρίς το n) που είναι πάρα πολύ πιο απλή;
Πρότυπο:
Επιστρέφει:
Για παράδειγμα:
το s_compare("abc", "abd") δίνει αρνητική τιμή, διότι 'c' < 'd'... άρα το s1 είναι μικρότερο του s2
το s_compare("ab", "c" ) δίνει επίσης αρνητική τιμή, διότι 'a' < 'c' ... άρα το s1 είναι μικρότερο του s2
το s_compare("abc", "abcd" ) δίνει επίσης αρνητική τιμή, διότι '\0' < 'd' ... άρα το s1 είναι μικρότερο του s2
το s_compare("d", "abc" ) δίνει θετική τιμή, διότι 'd' > 'a' ... άρα το s1 είναι μεγαλύτερο του s2
κλπ
Θέλετε πριν συνεχίσουμε με αυτές τις δυο, να κάνετε την σκέτη strcmp (χωρίς το n) που είναι πάρα πολύ πιο απλή;
Πρότυπο:
- Κώδικας: Επιλογή όλων
int s_compare( const char *s1, const char *s2 );
Επιστρέφει:
- 0 αν τα s1 και s2 είναι ίδια,
- θετική τιμή αν το s1 είναι μεγαλύτερο του s2
- αρνητική τιμή αν το s1 είναι μικρότερο του s2
Για παράδειγμα:
το s_compare("abc", "abd") δίνει αρνητική τιμή, διότι 'c' < 'd'... άρα το s1 είναι μικρότερο του s2
το s_compare("ab", "c" ) δίνει επίσης αρνητική τιμή, διότι 'a' < 'c' ... άρα το s1 είναι μικρότερο του s2
το s_compare("abc", "abcd" ) δίνει επίσης αρνητική τιμή, διότι '\0' < 'd' ... άρα το s1 είναι μικρότερο του s2
το s_compare("d", "abc" ) δίνει θετική τιμή, διότι 'd' > 'a' ... άρα το s1 είναι μεγαλύτερο του s2
κλπ