结果只会输出NO,为什么 ?

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:56:07
帮忙看看有的就没。。咋改?最好别全部改了。
s,t两个字符串,只要s中的字符全能在t中依次找到,就输出Yes,否则No。
我写的只会输出NO,绑忙看看
如:
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter

Yes
No
Yes
No

#include<stdio.h>
#include<malloc.h>
int main()
{
int ls,lt;
char s[100000],t[100000];
scanf("%s%s",s,t);
ls=sizeof(s);
lt=sizeof(t);
int i,j;
for(i=j=0; i<ls; )
{
if(s!=t[j])
{
for( ; j<lt; )
{
j=j+1;
if(s==t[j])
break;
while(j==(lt-1)&&i!=(ls-1))
{
printf("No\n"); break;
}
};
};
i++;
j+

我没有改这个程序,只是写出了一些你可能写错的地方。希望对你有些提示。
#include<stdio.h>
#include<malloc.h>
int main()
{
int ls, lt;
char s[100000], t[100000];
scanf("%s%s",s,t);
//计算数组元素的个数应该是这样。
//如果只写sizeof(s),刚是计算数组所占用的所有空间,
//除以每个元素所占的空间数,才等于数组元素的个数。
ls = sizeof (s) / sizeof (*s) ;
lt = sizeof (t) / sizeof (*t);
int i, j;
for(i = j = 0; i < ls; )
{
if(s != t[j])//这里的的s是什么意思?
{
for( ; j < lt; )
{
j = j + 1;
if(s == t[j]) //这里的s是什么意思?
break;
while(j == (lt - 1) && i != (ls - 1))
{
printf ("No\n");
break;
}
}; //分号在大括号后面可以不加,加上之后反倒像画蛇添足了。
}; //不过在写类时候就一定不能忘记加。