Как мне исправить мою функцию stringcompare, чтобы она измеряла всю строку

#c

#c

Вопрос:

 int comparestrings(char *x,char *y)
{
    int j = 0;
    for (j=0;j<4;j  )
    {
         if (x[j]<y[j]) 
         {
              return 1;
         }
         else if(x[j]>y[j])
         {
              return 1;
         }
         else 
         {
              return 0;
         }
    }
}
 

обе строки имеют максимальную длину 4 символа, поэтому измерение длины не является проблемой. моя проблема в том, что мне нужно определить порядок, в котором он должен что-то делать. ему необходимо сравнить типы крови, из которых существует только 8 возможностей. прямо сейчас, если первый символ совпадает, он выдаст возвращаемое значение 0, которое продвинет программу, даже если следующие символы отличаются. так, например, если первое значение равно A , оно также будет отображать A A- AB AB- . куда мне поместить возвращаемые значения, если я хочу, чтобы это измеряло все целиком?

Комментарии:

1. else { return 0;} Удалите часть и просто поместите return 0; в конец функции (вне цикла).

2. Разве она не должна возвращать -1, 1 или 0?

3. Почему вы пишете свою собственную функцию? Что не так со встроенной strcmp() ?

4. Вы можете использовать strcmp(* x, * y) для сравнения двух строк, strcmp возвращает 0, если обе строки идентичны.