

该学习了。。。
第二题提交之后出现了这个是什么意思啊?SIGSEGV
#include <stdio.h>
#include <string.h>
#define N 100
#define M 100
int main(void)
{
char str1[N], str2[M];
int i, n = 0, step1 = 0, step2 = 0;
while(scanf("%s", str1) != EOF)
{
scanf("%s", str2);
for(i = 0;i < strlen(str2);i ++)
{
if(str1[step1] == str2[step2])
{
n ++;
step1 ++;
step2 ++;
}
else
{
step2 ++;
}
}
if(n == strlen(str1))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}
把数组开大点.
数组开的大了之后,就超时了!小了还是上面的错误啊!另外问一下!字符数组要如何初始化啊!
#include <stdio.h>
#include <string.h>
#define N 10000
#define M 10000
int main(void)
{
char str1[N], str2[M];
int i, n = 0, step1 = 0, step2 = 0;
while(scanf("%s", str1) != EOF)
{
scanf("%s", str2);
for(i = 0;i < strlen(str2);i ++)
{
if(str1[step1] == str2[step2])
{
n ++;
step1 ++;
step2 ++;
}
else
{
step2 ++;
}
}
if(n == strlen(str1))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
n = 0;
step1 = 0;
step2 = 0;
}
return 0;
}