请问这段代码是怎么实现的?

img

#include<bits/stdc++.h>
using namespace std;
int main(){
char a[25];
    gets(a);
    char  b;
    cin>>b;
    int len=strlen(a);
    for(int i=0;i<len;){
        if(a[i]==b){
            for(int j=i+1;j<=strlen(a);j++){
                a[j-1]=a[j];
            }
        len--;
        
        }
    else    i++;
    }
    cout<<a;
    return 0;
    
} 

提问:
1.len不是自己定义的变量名吗,为什么len--之后数组的长度会变小,这样子的操作是删除数组的元素还是删除元素并缩小一位数组,好奇怪呀
2.gets()

img


为啥我把头文件改成”iostream stdio.h程序会报错?

文章中带有下面的字无法发表:
上述代码来自:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:

编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。_qq_45390699的博客-CSDN博客 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。  输入格式:输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。  输出格式:经过处理以后的字符串。  样例输入123-45-678样例输出12345678本题需要注意的是c... https://blog.csdn.net/qq_45390699/article/details/105312556

版权声明:本文为CSDN博主「qq_45390699」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。_qq_45390699的博客-CSDN博客 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。  输入格式:输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。  输出格式:经过处理以后的字符串。  样例输入123-45-678样例输出12345678本题需要注意的是c... https://blog.csdn.net/qq_45390699/article/details/105312556

不是数组长度会变小,实际上根本没变化