求字符串的两个函数

来源:百度知道 编辑:UC知道 时间:2024/06/02 21:09:27
求两个函数,分别在顺序和链式存储方式下实现字符串的strcompare(s1,s2)运算。(若字符串相等,返回0,S1大于S2返回1,S1小于S2返回-1)。是数据结构的题目。
谢谢了!!!

下面这样就可以:

int strcompare(char s1[],char s2[])
{
int i=0,ok=0;
while (s1[i] && s2[i] && ok==0) {ok=s1[i]-s2[2]; i++;}
if (ok==0) ok=s1[i]-s2[i];
if (ok>0) ok=1;
if (ok<0) ok=-1;
return ok;
}

程序依次比较每个字符,知道出现不等,或者某个串结束。

如果比较完成后结果仍然是相等,那么再次对当前字符进行比较,如果这个时候两串同时结束,那么结果为0,否则就是没结束的串大。

最后在返回结果前,把整数改为1,把负数改为-1。

顺序的,用数组存放
如:
char a[10]="123";
char b[20] ="123213";

int strcmp (
const char * src,
const char * dst
)
{
int ret = 0 ;

while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;

if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;

return( ret );
}

#include <stdio.h>

int strcompare1(char * s1, char