无效内存引用
各位大神你们好。我有一道编程题不知道哪里错了。这道题是学校老师布置的。有三个测试用例没有通过。其中一个是:错误的结果。另两个是:出现了无效内存引用。测试用例具体不知道。能帮忙看看吗题目:
输入
输入3行:第1行为源串s (长度<=100), 第2行被替换串t (长度<=10), 第3行为替换串str(长度<=10)
输出
替换后的字符串(长度<=100)
测试输入 期待的输出 时间限制 内存限制 额外进程
测试 1 文本显示 文本显示 1秒 64M 0
1.abcdefg 1.abcdefg
2.c
3.123
测试2 文本显示 文本显示 1秒 64M 0
1.1234567890 1.abcdefg4567890
2.123
3.abcdefg
#include<stdio.h>
#include<string.h>
int main()
{
char s[250],s1[250],s2[250],ss[250];
int i,j,k,l,n,p,q,m,u;
gets(s);
gets(s1);
gets(s2);
l=strlen(s1);
strcpy(ss,s);
for (i=0;s[i];i++)
{
n=0;
k=i;
for (j=0;s1[j];j++,k++)
if (s1[j]==s[k]) n++;
if (n==l)
{
k=i;
for (p=0;p<k;p++)
ss[p]=s[p];
for (u=p;s[u+l];u++)
s[u]=s[u+l];
s[u]='\0';
m=p;
for (q=0;s2[q];q++,m++)
ss[m]=s2[q];
for (;s[p];p++,m++)
ss[m]=s[p];
ss[m]='\0';
strcpy(s,ss);
}
}
puts(ss);
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char s[250],s1[250],s2[250],ss[250];
int i,j,k,l,n,p,q,m,u;
gets(s);
gets(s1);
gets(s2);
l=strlen(s1);
strcpy(ss,s);
for (i=0;s[i];i++)
{
n=0;
k=i;
for (j=0;s1[j];j++,k++)
if (s1[j]==s[k]) n++;
if (n==l)
{
k=i;
for (p=0;p<k;p++)
ss[p]=s[p];
for (u=p;s[u+l];u++)
s[u]=s[u+l];
s[u]='\0';
m=p;
for (q=0;s2[q];q++,m++)
ss[m]=s2[q];
for (;s[p];p++,m++)
ss[m]=s[p];
ss[m]='\0';
strcpy(s,ss);
}
}
puts(ss);
return 0;
}