顺序串 按字典顺序比较俩个串的大小

#include<bits/stdc++.h>

#define MaxSize 50

typedef struct

{

 char data[MaxSize];

 int length;

}SqString;

//创建串

void StrAssign(SqString &s,char cstr[])

{

 int i;

 for(i=0;cstr[i]!='\0';i++)

 {

  s.data[i]=cstr[i];

 }

 s.length=i;

}

int Strcmp(SqString s,SqString t)

{

 int i,comlen;

 if(s.length<t.length)

 {

  comlen=s.length;

 }

 else 

 {

  comlen=t.length;

 }

 for(i=0;i<comlen;i++)

 {

  if(s.data[i]>t.data[i])

  {

   return 1;

  }

  else if(s.data[i]<t.data[i])

  {

   return -1;

  }

 }

 if(s.length==t.length)

 {

  return 0;

 }

 else if(s.length>t.length)

 {

  return 1;

 }

 else

 {

  return -1;

 }

}

void DispStr(SqString s)

{

 int i;

 if(s.length>0)

 {

  for(i=0;i<s.length;i++)

  {

   printf("%c",s.data[i]);

  }

  printf("\n");

 }

}

int main()

{

 SqString s,ss;

 int k;

 char a[]="abcde";

 char b[]="abcdee";

 StrAssign(s,a);

 StrAssign(ss,b);

 DispStr(s);

 DispStr(ss);

 k=Strcmp(s,ss);

 printf("%d",k);

 return 0;

}

猜你喜欢

转载自blog.csdn.net/2302_77099705/article/details/130442730