数据结构小练习–设计一个算法Strcmp(s,t),以字典顺序比较两个英文字母串s和t的大小,假设两个串均以顺序串存储
算法设计
#include <stdio.h>
#define MaxSize 100
typedef struct
{
char data[MaxSize];
int length;
}SqString;
void Assign(SqString &s,char str[])
{
int i=0;
while (str[i]!='\0')
{
s.data[i]=str[i];
i++;
}
s.length=i;
}
void DestroyStr(SqString s)
{}
int StrLength(SqString s)
{
return(s.length);
}
void DispStr(SqString s)
{
int i;
for(i=0;i<s.length;i++)
printf("%c",s.data[i]);
printf("\n");
}
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;
}
测试代码
#include "SqString.cpp"
int main()
{
SqString s,t;
Assign(s,"ac");
printf(" s:"); DispStr(s);
Assign(t,"abcd");
printf(" t:"); DispStr(t);
switch(Strcmp(s,t))
{
case 0:
printf(" s=t\n");
break;
case 1:
printf(" s>t\n");
break;
case -1:
printf(" s<t\n");
break;
}
}
运行截图