Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [C++] wat doet de functie " strcmp " precies  (gelezen 2103 keer)

Offline Joshua822

  • Lid
[C++] wat doet de functie " strcmp " precies
« Gepost op: 2009/07/16, 23:06:12 »
Hallo,

ik zit met een vraag, Wat doet de functie strcmp nu precies. Deze vergelijkt twee strings, maar hoe worden deze strings vergeleken. Ik word er niet wijs uit.

Alvast bedankt.

Re: [C++] wat doet de functie " strcmp " precies
« Reactie #1 Gepost op: 2009/07/16, 23:18:09 »
Heb je hier wat aan?

Citaat
Return Value
Returns an integral value indicating the relationship between the strings:
A zero value indicates that both strings are equal.
A value greater than zero indicates that the first character that does not match has a greater value in str1 than in str2; And a value less than zero indicates the opposite.

Re: [C++] wat doet de functie " strcmp " precies
« Reactie #2 Gepost op: 2009/07/17, 09:48:58 »
Hier even operator< van LibSylph, misschien kan het je helpen om het te begrijpen:
// Compares 2 strings for less-than relation.
bool operator<(const String lhs, const String rhs) {
    // l = string with smallest length
    String l = lhs.length() < rhs.length() ? lhs : rhs;
    // r = string with longest length
    String r = lhs.length() < rhs.length() ? rhs : lhs;
    // iterate over the strings, to a maximum of the length of the smallest string.
    for (idx_t i = 0; i < l.length(); i++) {
        // equal, continue with next character
        if (l.at(i) == r.at(i)) continue;
        // greater than, return false
        else if (l.at(i) > l.at(i)) return false;
        // less than, return true
        else return true;
    }
    // r.startsWith(l), for that reason return true
    return true;
}
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline Joshua822

  • Lid
Re: [C++] wat doet de functie " strcmp " precies
« Reactie #3 Gepost op: 2009/07/17, 10:14:29 »
Dus als ik het goed begrijp, kijkt men naar het eerste karakter in de string, dat niet gelijk is, en kijkt men dan naar de ASCII waarde van het teken, om zo tot een oordeel te komen ? En als het teken dat niet gelijk is van de eerste string een grotere waarde heeft als dat bepaald teken in de andere string, er een positief, en bij een lagere waarde een negatief getal geeft ?

SeySayux, bedankt, dat script zal ik nog eensbekijken.
« Laatst bewerkt op: 2009/07/17, 10:21:49 door Joshua822 »

Offline idefix

  • Lid
Re: [C++] wat doet de functie " strcmp " precies
« Reactie #4 Gepost op: 2009/07/17, 10:24:02 »
Dus als ik het goed begrijp kijkt het naar de lengte van de strings ?

Oké, bedankt iedereen, ik heb hier veel aan.

Neen, in de functie van SeySayux wordt bepaald welke de kortste string is. En nadien wordt character per character vergeleken (alfabetisch).

Dit is wat strcmp doet: karakter per karakter twee strings vergelijken. Als alle karakters gelijk zijn, levert strcmp de waarde 0. Als niet alle karakters gelijk zijn, levert strcmp een positieve waarde als het eerste karakter dat anders is in str1 groter is dan het corresponderende karakter in str2. Anders levert strcmp een negatieve waarde.

EDIT: je hebt je bericht aangepast. Mijn uitleg is overbodig, want je hebt het goed begrepen.  ;)
« Laatst bewerkt op: 2009/07/17, 10:25:48 door idefix »
Support bacteria. They're the only culture some people have.

Offline Joshua822

  • Lid
Re: [C++] wat doet de functie " strcmp " precies
« Reactie #5 Gepost op: 2009/07/17, 11:55:18 »
Mijn excuses, maar toch bedankt, Idefix. Alle beetjes uitleg maken het natuurlijk wat beter te begrijpen.

Offline idefix

  • Lid
Re: [C++] wat doet de functie " strcmp " precies
« Reactie #6 Gepost op: 2009/07/17, 11:59:38 »
Mijn excuses, maar toch bedankt, Idefix. Alle beetjes uitleg maken het natuurlijk wat beter te begrijpen.
geen excuses nodig, maat, zo gaat dat op een forum. ;)
Support bacteria. They're the only culture some people have.