strmp

07/08/2014 12:35 Kiasho#1
Code:
// (zahl) wurde global deklariert
int str_cmp(const char*c_buchstaben1[], const char* c_buchstaben[])
{
	while ((*c_buchstaben1[zahl]) == (*c_buchstaben[zahl]))
	{
		if (c_buchstaben1[(zahl == 199)])
		{
			return 0;
		}
		else if ((*c_buchstaben1[zahl]) < (*c_buchstaben[zahl]))
		{
			return -1;
		}
		else if ((*c_buchstaben1[zahl]) > (*c_buchstaben[zahl]))
		{
			return 1;
		}
	}
	zahl + 1;
}
das soll die funktion strcmp darstellen ist so richtig?
07/08/2014 13:40 th0rex#2
Nein, weil du const char*[] als Parameter übernimmst.
Hier ist ein Beispiel aus dem Internet, wie die strcmp Funktion aussehen könnte. Und beim nächsten mal könntest du das einfach googlen :)
Code:
int myStrCmp (const char *s1, const char *s2) {
    const unsigned char *p1 = (const unsigned char *)s1;
    const unsigned char *p2 = (const unsigned char *)s2;

    while (*p1 != '\0') {
        if (*p2 == '\0') return  1;
        if (*p2 > *p1)   return -1;
        if (*p1 > *p2)   return  1;

        p1++;
        p2++;
    }

    if (*p2 != '\0') return -1;

    return 0;
}
Und wenn du zahl1 global hast würde ich zahl1 am Anfang deiner Funktion auf 0 setzen. Ergibt für mich aber überhaupt keinen Sinn das überhaupt global oder in einem int zu speichern. Wie du in dem Beispiel siehst kannst du pointer direkt inkrementieren.