【问题描述】从字符串中删除给定的字符,并输出删除后的结果。
提示:同一字母的大小写按不同字符处理。
【输入形式】第一行输入字符串,第二行输入删除的字符
【输出形式】第三行输出删除后的字符串
【样例输入】This is a test.
i
【样例输出】Ths s a test.
如图所示
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;
}