V
Vicious Falcon schrieb:
Sinnvoller wäre es an dieser Stelle, zu erklären, wie man Strings vergleichen kann.
So zum Beispiel:
int compare(const char* First1, const char* Last1,
const char* First2, const char* Last2)
{
for (; First1 != Last1 && First2 != Last2 ;++First1, ++First2)
{
if(!(*First1) || !(*First2)) // Nullterminierung
return ((!(*First1) && (!(*First2)))?0:(!(*First1))?-1:1);
if(*First1!=*First2)
return *First1<*First2?-1:1;
}
return ((First1==Last1 && First2 == Last2)?0:(First1==Last1)?-1:1); // Adressen vergleichen
}
Das heißt, man iteriert durch die beiden Strings, schaut, ob das Nullterminierungszeichen ('\0' Wert: 0) gefunden wurde, wenn nein, werden die beiden chars verglichen.
Da ich den ?:-Operator nicht sehr mag, hab ichÄs mal versucht, umzuschreiben (auch ungetestet).
int compare(const char* First1, const char* Last1,
const char* First2, const char* Last2)
{
for (;First1!=Last1 && First2!=Last2; ++First1,++First2)
{
if(*First1!=*First2)
return *First1-*First2;
if(*First1=='\0')
return 0;
}
return (First2==Last2)-(First1==Last1);
}