C语言——字符串(求for循环开始的解释)

//输入删除字符串的字符串
//输入:abcababcababca
// abc
//输出:ababa
#include<stdio.h>
#include<string.h>
int main(){
char a[100],b[100];
int i,j,flag,c;
gets(a);
gets(b);
for(i=0;i<strlen(a);i++){
for(j=0;j<strlen(b);j++){
if(a[i+j]==b[j])
flag=1;
else
flag=0;
}
if(flag==1){
for(c=i;c<strlen(a);c++)
a[c]=a[c+strlen(b)];
}
}
puts(a);
return 0;
}

for(i=0;i<strlen(a);i++){  
  //这里嵌套循环,循环a数组,依次取a的元素,然后匹配以该元素开头的字符串是否和b数组一样
  //如果该元素开头后面和b都一样,那么子j循环结束,标识变量flag就是1, 
  //那么下面c循环就是通过元素移位,从a数组中删除对应字符。最后剩下的就是你要的。
  //  puts(a);打印移位删除后剩余的内容
        for(j=0;j<strlen(b);j++){
            if(a[i+j]==b[j])
                flag=1;
            else
                flag=0;
        }
        if(flag==1){
            for(c=i;c<strlen(a);c++)
                a[c]=a[c+strlen(b)];
        }
    }
    puts(a);

温馨提示:答案为网友推荐,仅供参考
相似回答