字符串数组的删除和保存

img


题目如上,不知道怎么做,看看 ,怎么来实现这一个功能。最好加上一点注释。

数组移动的问题,代码如下:

#include <stdio.h>
void fun(char a[],char c)
{
    int i = 0, j = 0;
    while (a[i] != '\0')
    {
        if (a[i] != c)
            a[j++] = a[i];
        i++;
    }
    a[j] = 0;
}

int main()
{
    char a[1002], c;
    gets(a);
    c = getchar();

    fun(a,c);
    printf("%s", a);
    return 0;
}

将不是被删除的字符移动到字符串开头就行

#include <stdio.h>
int main()
{
    char s[10001] = {0},c;
    int i=0,j=0;
    gets(s);  //接收字符串
    c = getchar();  //接收需要删除的字符
    printf("%s\n",s);
    while(s[i] != '\0')  //遍历字符串所有字符
    {
        if(s[i] != c)         //如果不是被删除字符,则将该字符移动到字符串开头文字,j表示写入位置下标,从0开始,每写入一个字符,下标值加1
            s[j++] = s[i];
        i++;
    }
    s[j] = '\0';   //最后将字符串结束符写入非被删除字符的尾部即可
    printf("%s\n",s);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632