C语言指针判断是否为子串问题

有一种加密方法:对于给定的一条信息s,把s看作一个字符串,然后随机产生一些字符串,把这些字符串插入到s的某些字符之间,这样处理后可以得到密文t。现在不考虑如何产生字符串,... 有一种加密方法:对于给定的一条信息s,把s看作一个字符串,然后随机产生一些字符串,把这些字符串插入到s的某些字符之间,
这样处理后可以得到密文t。现在不考虑如何产生字符串,也不考虑如何把字符串插入到明文中。

给定两个字符串s和t,请判定s是否为t的明文。
其实这个问题就是考虑s是否为t的子串。
这里字串的定义:把t里面的某些字符删除后,剩下的字符串恰好是s,则s就是t的子串。
输入

输入包括多组测试数据。每组测试数据一行,该行为由空格分开的两个字符串s和t。s和t中的字符都是英文字母。s与t的长度均不超过200。

输出

对每组测试数据,如果s是t的子串,在单独的一行中输出"Yes", 否则在单独的一行中输出"No"。

输入样列

sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter

输出样例

Yes
No
Yes
No
展开
 我来答
shine1991
科技发烧友

2018-01-06 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
#include <stdio.h>
int func(char *s1,char *s2)
{
char *p=s2;
for(;*s1;s1++)
{
for(;*p;p++)
{
if(*p==*s1)
{
break;
}
}
if(*p=='\0')
{
return 0;
}
p++;
}
return 1;
}
int main(void)
{
char s1[100],s2[100];
while(scanf("%s%s",s1,s2)==2)
{
if(func(s1,s2))
{
puts("Yes");
}
else
{
puts("No");
}
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式