玉楼春 欧阳修译文:C语言编程题

来源:百度文库 编辑:高校问答 时间:2024/04/25 06:16:06
编写函数void delstr(char *str,char *s),从字符串str中删除子字符串s.
例如:若输入的母串为"abaaAabcaabbabca",子串为"ab",则程序输出:
"aaAcabca";若输入母串为"aabcbcabcba",子串为"abc",则输出: "abcba" . */
#include<string.h>
#include<stdio.h>
void delstr(char *str,char *s)
{
}
main()
{char a[80],b[80];
gets(a);gets(b);
delstr(a,b);
puts(a);
}

收到短信,以下是俺的回答^_^
已经通过调试:)

#include<string.h>
#include<stdio.h>
void delstr(char *str,char *s)
{
int lena,lenb,i,j;
lena=strlen(str);
lenb=strlen(s);
for (i=0;i<=lena-lenb;)
{
for (j=0;j<lenb&&str[i+j]==s[j];j++);
if (j==lenb)
{
memcpy(str+i,str+i+j,lena-i-j);
lena-=j;
str[lena]=0;
}
else i++;
}
return;
}
main()
{char a[80],b[80];
gets(a);gets(b);
delstr(a,b);
puts(a);
}

int i,j;
int len;
for(i = 0;str[i];i ++
{
len = strlen(s);
for(j = 0;j < len;j ++)
{
if(str[i + j] != s[j]) break;
}
if(j < len) continue;
for(j = 0;j < strlen(str) - i - len;j ++)
{
str[i + j] = str[i + j + len];
}
str[i + j] = 0;
}
好像还有个strstr()的函数,是在字符串中查找子串,我忘了怎么用.