/* Martin Hess, 2.06.2001 MC1 TSU */ #include #include #include /* Globale Variablen */ int Compare_Str(char* Str1, char* Str2, int* Where); void main(void) { /* lokale Variablen */ char Str1[21]; char Str2[21]; char nothing[2]; int Result; int Where; /* Beginn main */ clrscr(); gotoxy(25,1); printf("***** Übung 9 Martin Hess *****"); gotoxy(25,2); printf("***** Pointer *****"); printf("\nErster String : "); //scanf("%s",Str1); gets(Str1); printf("\nZweiter String : "); //scanf("%s",Str2); gets(Str2); /*Beginn Vergleich */ Result = Compare_Str(Str1,Str2,&Where); if (Result == 1) printf("\n\nString 1 ist grösser"); if (Result == 2) printf("\n\nString 2 ist grösser"); if (Result == 0) printf("\n\nBeide Strings sind gleich gross"); printf("\nDie Strings unterscheiden sich ab %d Stelle", Where); printf("\nEnter um Programm zu beenden."); gets(nothing); } // of main int Compare_Str(char* Str1, char* Str2, int* count) { char* pStart; char* pStr1; char* pStr2; int Same; pStr1 = &Str1[0]; pStr2 = &Str2[0]; pStart = pStr1; if (*pStr1 == *pStr2) { do { pStr1++; pStr2++; } while ((*pStr1 == *pStr2)||(*pStr1 == 0)||(*pStr2 == 0)); } if (*pStr1 > *pStr2) Same = 1; // Str1 grösser if (*pStr1 < *pStr2) Same = 2; // Str2 gröser if ((*pStr1 == 0)||(*pStr2 == 0)) Same = 0; // gleich gross *count = (pStr1 - pStart); // Unterscheidungspunkt return(Same); } // of Compare_Str