问答题 编写函数fun(),其功能是从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。例如,若程序执行时输入字符串为turbo c and borland c++,从键盘上输入字符n,则输出后变为turbo c ad borlad c++。如果输入的字符在字符串中不存在,则字符串照原样输出。
#include<stdio.h>
#include<string.h>
void fun(char s[],char c)


main()

static char str[]="turbo c and borland c++";
char ch;
printf("原始字符串:%s/n",str);
printf("输入一个字符:");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%s/n",str);


【正确答案】char *p=s;
int i=0;
while(*p){
if(*p!=c)s[i++]=*p;
p++;
}
s[i]='/0';
【答案解析】[解析] 该程序的功能是删除字符串中指定的字符。解题过程:首先利用循环在字符串中查找指定的字符,然后对其进行删除操作。
进入fun函数,根据前面的分析进行如下操作。
①首先设置一个指针变量指向字符串的头位置,并使用循环依次查找字符串中的指定字符。
②若找到指定字符,则将后面位置的第一个非指定字符移到当前位置,并将其后的字符也依次前移。
③最后将处理的字符串输出。
[考点] 指针操作。