老师布置了一道题,感觉比较可以。
例如母字符串为:abababababccccc,子字符串为abc。删除中间的abc后,会产生新的abc子字符串,我们应该再次遍历该母字符串,查找是否产生了新的子字符串。
具体程序如下(这里说明下,用自己的strcat函数,因为库函数的strcat有问题,不能用在本身的字符串身上)
//删除字符串中的子串
#include
#include
#include
int delestr(char str[],char * cstr);
char * mystrcat(char * str1,const char * str2);
int main (int argc, char *argv[])
{
char str[]="dfdsabcababababcccccccdfds";
char * cstr = "abc";
delestr(str,cstr);
printf("%s\n",str);
return 0;
}
int delestr(char str[],char * cstr)
{
char * p = str;
bool flag = true;
int len = strlen(cstr);
while(flag)
{
flag=false; //准备结束这次循环,如果下面没有找到子字符串,这次while就完了。
while(*str)
{
if(*str == *cstr)
{
if(strncmp(str,cstr,len) == 0)
{