c语言判断一个序列是不是另一个的子序列

#include <stdio.h>
#include <string.h>//添加字符串头文件

int Subsequence(char s[], char t[])
{
int m,n,i,j;
n = strlen(s); //n表示序列S的长度
m = strlen(t); //m表示序列T的长度
i=0;
j=0;
if (m>n)
return 0; //T不是S的子序列
while ((i<m)&&(j<n))
{
if(t[i]==s[j])
//序列T中第i个元素与序列S中第j个元素相等
i=i+1;
j=j+1;
}
if (strstr(s,t)!=NULL)
return 1; //T是S的子序列
return 0;
}


int main()
{
int Subsequence(char s[], char t[]);
char s[30],t[30];
int n,m;

printf("**************************************************\n");
printf(" 子 序 列 判 定 算 法\n");
printf("**************************************************\n\n");

printf("您要在多少组序列中进行判定,请输入(1~100):");
scanf("%d",&n);
printf("\n");

m=1;
while(n--)
{

printf("请输入第%d组待匹配序列S:",m);
scanf("%s",s);
printf("请输入第%d组待匹配序列T:",m);
scanf("%s",t);
if(Subsequence(s,t))
printf("序列T(%s)是序列S(%s)的子序列。\n\n",t,s);
else
printf("序列T(%s)不是序列S(%s)的子序列。\n\n",t,s);
m++;
}
}

永不止步步 发表于12-29 10:19 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308417个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号