надо написать аналог функции 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.
19 декабря 2008 в 0:03
да… точку с запятой я не заметил
18 декабря 2008 в 12:01
"а что с ней не так?"
Да этот код вообще не скомпилируется!
Эта строка сюда попала видимо случайно и помимо того что она ничего не делает, так она ещё и не имеет в конце точки с запятой.
18 декабря 2008 в 0:05
а что с ней не так? в выходном коде фигурировать не будет, и все.
18 декабря 2008 в 0:02
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;
}
Четвёртую строку-то видите?
17 декабря 2008 в 21:05
спасибо большое) так работает))
17 декабря 2008 в 21:04
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;
}
———————
А так?