Я искал справедливый бит для ответа. Я собираюсь сделать ряд собственных строковых функций, таких как my_strcmp()
, my_strcat()
и т.д.
Работает ли strcmp()
каждый индекс из двух массивов символов, и если значение ASCII меньше при идентичном индексе двух строк, эта строка имеет более широкую букву и, следовательно, возвращается 0 или 1 или 2? Я предполагаю, что я спрашиваю, использует ли он значения ASCII символов для возврата этих результатов?
Любая помощь будет принята с благодарностью.
[REVISED]
ОК, поэтому я придумал это... он работает во всех случаях, кроме случаев, когда вторая строка больше первой.
Какие-нибудь советы?
int my_strcmp(char s1[], char s2[])
{
int i = 0;
while ( s1[i] != '\0' )
{
if( s2[i] == '\0' ) { return 1; }
else if( s1[i] < s2[i] ) { return -1; }
else if( s1[i] > s2[i] ) { return 1; }
i++;
}
return 0;
}
int main (int argc, char *argv[])
{
int result = my_strcmp(argv[1], argv[2]);
printf("Value: %d \n", result);
return 0;
}