Я пытался реализовать функцию strcmp
, что находится внутри «string.h» Библиотека в С. Это то, что я сделал:Как реализовать STRCMP функцию string.h в C
int myStrCmp(char str1[], int len1, char str2[], int len2)
{
int i = 0;
int stop = 0;
int cmp = 0;
for (i = 0; i < len1 && !stop; i++)
{
if (str1[i] == str2[i])
{
cmp = 0;
}
else if (str1[i] > str2[i])
{
cmp = -1; // gives 1 if string 1 will be appear first in dictionary.
stop = 1; // stops the loop.
}
else
{
cmp = 1;
stop = 1;
}
}
return cmp;
}
Все нормально , но некоторые случаи ввода для строк не работают. В качестве примера:
str1 = "ab";
str2 = "abcd";
Как это исправить?
Это не то, что выглядят параметры реального 'strcmp' - он принимает две строки с нулевым завершением без длин. – interjay
Хмм 'len2' не используется. Для чего это? – chux
В этом проблема с len2 –