PTA浙大版《C语言程序设计(第4版)》习题8-6 删除字符

本题要求实现一个删除字符串中的指定字符的简单函数。

img

代码提交情况:

img

我的代码:

#include <string.h>
void delchar(char* str, char c)
{
    int len = strlen(str);
    char temp[MAXN];
    int j = 0;
    for (int i = 0; i < len; i++)
    {
        if (str[i] != c)
        {
            temp[j] = str[i];
            j++;
        }
    }
    temp[j] = '\0';
    int len_1 = strlen(temp);
    int i = 0;
    for (i = 0; i < len_1; i++)
    {
        str[i] = temp[i];
    }
    str[i] = '\0';
}

这个函数这么改,供参考:

void delchar(char* str, char c)
{
    int i, j;
    for (i = 0, j = 0; str[i]; i++)
    {
        if (str[i] != c)
            str[j++] = str[i];
    }
    str[j] = '\0';
}

程序修改如下所示,试下看能满足需求不:

#include <string.h>
void delchar(char* str, char c)
{
    int len = strlen(str);
    char temp[MAXN];
    int j = 0;
    int i=0;
    for (i = 0; i < len; i++)
    {
        if (str[i] != c)
        {
            temp[j] = str[i];
            j++;
        }
    }
    temp[j] = '\0';
    if(j==0)
    {

    }
    else
    {
        //
    
        for (i = 0; i <=j; i++)
        {
            str[i] = temp[i];
        }
    }
    
}