Создание моей собственной функции strcmp () в C
Мой учитель поручил мне написать свойstrcmp()
Функция в C. Я создал свою версию указанной функции, и я надеялся получить обратную связь.
int CompareTwoStrings ( char *StringOne, char *StringTwo ) {
// Evaluates if both strings have the same length.
if ( strlen ( StringOne ) != strlen ( StringTwo ) ) {
// Given that the strings have an unequal length, it compares between both
// lengths.
if ( strlen ( StringOne ) < strlen ( StringTwo ) ) {
return ( StringOneIsLesser );
}
if ( strlen ( StringOne ) > strlen ( StringTwo ) ) {
return ( StringOneIsGreater );
}
}
int i;
// Since both strings are equal in length...
for ( i = 0; i < strlen ( StringOne ); i++ ) {
// It goes comparing letter per letter.
if ( StringOne [ i ] != StringTwo [ i ] ) {
if ( StringOne [ i ] < StringTwo [ i ] ) {
return ( StringOneIsLesser );
}
if ( StringOne [ i ] > StringTwo [ i ] ) {
return ( StringOneIsGreater );
}
}
}
// If it ever reaches this part, it means they are equal.
return ( StringsAreEqual );
}
StringOneIsLesser, StringOneIsGreater, StringsAreEqual определяются как const int с соответствующими значениями: -1, +1, 0.
Дело в том, что я не совсем уверен, если, например, мой StringOne имеет меньшую длину, чем мой StringTwo, это автоматически означает, что StringTwo больше, потому что я не знаю, какstrcmp()
особенно реализовано. Мне нужны ваши отзывы для этого.