编写函数fun,其功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符处理。
例如,若程序执行时输入字符串为:
"turbo C and borland c++"
从键盘上输入字符n,则输出为:
"turbo c ad borlad c++"
如果输入的字符在字符串中不存在,则字符串照原样输出。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
void fun(char s[],int c)
main()
static char str[]="turbo c and borland c++";
char oh;
printf("原始字符串:%s\n",str);
printf("输入一个字符:\n");
scanf("%c",&ch);
fun(str,ch);
printf("str[]=%sin",str);
strcpy(str,"turbo c and borland c++");
fun(str,’a’);
参考答案:
void fun(char s[],int c)
{
int i=0;
char*p;
p=s;
while(*p) /*判断是否为结束符*/
{
if(*p!=c) /*判断字符串中字符是否与指定字符相同*/
{
s[i]=*p;/*不同将重新组合字符串,*/
i++;
}
p++; /*相同则处理下一个字符。*/
}
s[i]=’\0’;
}
解析:
删除字符串中指定字符只需把未删除字符保留。该程序先将字符串s的首地址赋给了指针p,经过判断后,将重新组合的字符存入s。