singlepost

надо написать аналог функции strncmp() << На главную или назад  

надо написать аналог функции strncmp()

#include <stdio.h>
#include <string.h>

int strrrcmp(char *s, char *t,int n)
{int i;
for (i=0;i<=n;i++)
{s[i]==t[i]
if (s[i]>t[i])
return 1;

else if (s[i]<t[i])
return -1;

else
return 0;}

}

void main()
{int m;
char string1[]="abcd";
char string2[]="acdc";
m=strrrcmp(string1,string2,3);
printf("%d",m);
}

по идее должна вывести на экран -1. но всегда выводит 0. при любых словах

Прототип функции strncmp:
int strncmp(const char *strl, const char *str2, size_t num);
Функция сравнивает первые num символовстрокstrlиstr2.Возвращаетв
качестве результата сравнения целую величину:
< 0 когда strl меньше, чем str2;
= 0 когда strl равна str2;
> 0 когда strl больше, чем str2.

55 ответов в теме “надо написать аналог функции strncmp()”

  1. 6
    Леонид Максимов ответил:

    да… точку с запятой я не заметил :)

  2. 5
    Deleted Deleted ответил:

    "а что с ней не так?"
    Да этот код вообще не скомпилируется!
    Эта строка сюда попала видимо случайно и помимо того что она ничего не делает, так она ещё и не имеет в конце точки с запятой.

  3. 4
    Леонид Максимов ответил:

    а что с ней не так? в выходном коде фигурировать не будет, и все.

  4. 3
    Deleted Deleted ответил:

    int strrrcmp(char *s, char *t,int n)
    {int i;
    for (i=0;i<=n;i++)
    {s[i]==t[i]
    if (s[i]>t[i])
    return 1;

    else if (s[i]<t[i])
    return -1;
    }
    return 0;
    }

    Четвёртую строку-то видите?

  5. 2
    Оксана Пещур ответил:

    спасибо большое) так работает))

  6. 1
    Андрей Паславский ответил:

    int strrrcmp(char *s, char *t,int n)
    {int i;
    for (i=0;i<=n;i++)
    {s[i]==t[i]
    if (s[i]>t[i])
    return 1;

    else if (s[i]<t[i])
    return -1;
    }
    return 0;
    }

    ———————
    А так?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.