谢谢ml232528朋友的指教
谢谢这位朋友,现把代码改正,再贴于此,请多指教。谢谢。
程序代码:
#include<stdio.h>
#include<string.h>
#define N 100
int Del(char *str1,char *str2)
{
char *p;
char cmp[N];
char *q,*q1;
int i=0;
q=cmp;
q1=str1;
p=strstr(str1,str2); /* 比较两个字符串 */
if(p==NULL) return 0; /* 如果str1中没有str2字符串中的内容,返回 0 */
else
{
while(*q1) /* 循环结束条件是字符串str1结束 */
{
if(q1==p) /* 如果遇到相同字符串的首地址 */
q1+=strlen(str2); /* 越过相同的字符串 */
cmp[i]=*q1; /* 把删去相同的部分的新字符串暂存到数组cmp中 */
i++;
q1++;
}
cmp[i]='\0'; /* 在数组结尾加上结束标记 */
strcpy(str1,cmp); /* 将新的字符串拷贝到字符串str1中 */
return 1; /* 返回1 */
}
}
int main(void)
{
char str1[N],str2[N];
puts("input the str1 and str2:");
gets(str1);
gets(str2);
if(strcmp(str1,str2)<=0) /* 如果 str2 大于等于 str1 ,退出程序 */
{
puts("error");
exit(0);
}
while(Del(str1,str2)) /* 如果函数返回值为真,就再重新调用函数,直到为假 */
Del(str1,str2);
puts(str1);
getch();
}