C语言使用指针删除字符

【问题描述】从字符串中删除给定的字符,并输出删除后的结果。

提示:同一字母的大小写按不同字符处理。
【输入形式】第一行输入字符串,第二行输入删除的字符
【输出形式】第三行输出删除后的字符串
【样例输入】This is a test.
i
【样例输出】Ths s a test.
如图所示

img

img

img


该怎么改啊

int i=0;
for(j=0;j<n;j++)
{
    if(a[j] != c)
        a[i++] = c;
}
a[i] = 0;
p = a;
printf("%s",p);


#include <stdio.h>
 
#define N 10
int main(int argc,const char *argv[])
{
    char str[N]={'\0'};
    char *pStr = str;
    printf("Please input string:\n");
    gets(pStr);
 
    while(*pStr)
    {
        //判断*pStr是否为空格
        if(' '==*pStr)
        {
            //定义一个临时指针,接替pStr目前的位置
            char *pTemp = pStr;
            //将空格之后的所有字符全部往前移动一个位置
            while(*pTemp)
            {
                *pTemp = *(pTemp+1);
                pTemp++;
            }
        }
        else
        {
            //和上面的if语句必须构成选择的关系
            //原因:执行if之后意味着存在将后面整体移动一个位置
            //但是不能保证覆盖空格的位置的字符是不是依旧是空格
            //故:不应该让pStr++,还需再次判断赋值过来的字符
            //直到赋值过来的字符不是空格则往后再次遍历
            pStr++;
        }
    }
    printf("删除之后:");
    pStr = str;
    puts(pStr);
    return 0;
}