看见了一段代码,不太明白,求大神详细讲讲,编码小白一名

void delete_char(char str[],char target){
int i,j;
for(i=j=0;str[i]!='\0';i++){
if(str[i]!=target){
str[j++]=str[i]; 这一行不懂
}
}
str[j]='\0';
}

j变量保存的是删除字符之后的字符串写入的位置
i变量保存的是遍历原始字符的读取的位置。
if(str[i]!=target)
当当前的字符不是要删除的字符
那么
str[j++]=str[i];
直接拷贝过来(此时j++,并且循环里面i++)
当找到要删除的字符,只有i++,因此写入的位置没有改变,相当于清除了这个字符。