编写函数delstr(str1,str2)。其中str1和str2为两个字符串。

编写函数DelStr(str1,str2)。其中str1和str2为两个字符串。函数的功能是从str1中删除所有str2字串,结果由str1输出。函数没有返回值。例如,输入str1为“howareyouareGGGare”,str2为“are”,那么调用函数DelStr(str1,str2)后str1为“howyouGGG”。

#include "string.h"

#include "stdio.h"

#include "stdlib.h"

char *DelStr(char *str1,char *str2)

{char sz[1000],str[1]={""};

 if(strcmp(str1,str2)!=0)

 

    strcpy(sz,str1);

    

    else

    

    strcpy(sz,str);

    return strdup(sz);

}

void main() 

{    char str1[20],str2[10]; 

printf("请输入要删除的单词:\n");  

scanf("%s",str2); 

printf("请输入一个句子:\n"); 

scanf("%s",str1); 

while(str1!="."||str1!="?"||str1!="!") 

{printf("%s",DelStr(str1,str2)); 

printf("%c",32); 

}

scanf("%s",str1); 

}

}

运行结果

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-25
#include <stdio.h>
#include <string.h>

void replace(char *s, const char *t)
{
char *p, *q, *r;

if (*t == '\0' || (p = strstr(s, t)) == NULL)
return ;
r = p;
p += strlen(t);

while ((q = strstr(p, t)) != NULL)
{
memmove(r, p, q - p);
r += q - p;
p += q - p + strlen(t);
}
memmove(r, p, strlen(s) - (p - s));
r += strlen(s) - (p - s);
*r = '\0';

}

int main()
{
char s[100] = "howareyouareGGGare";
char t[100] = "are";
replace(s, t);
printf("%s\n", s);
}本回答被网友采纳
相似回答