编写函数fun,函数的功能是:从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。 若程序执行时输入字符串为:turbo c andborlaM c++ 从键盘上输入字符:n,则输出后变为:turbo c ad borlad

admin2013-04-02  15

问题 编写函数fun,函数的功能是:从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。
    若程序执行时输入字符串为:turbo c andborlaM c++
    从键盘上输入字符:n,则输出后变为:turbo c ad borlad C++
    如果输入的字符在字符串中不存在,则字符串照原样输出。
    注意:部分源程序在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
void fun(char s[],char c)
{
}
s=’\0’;
}
NONO()
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
  FILE *rf, *wf ;
  char s[81], ch, w ;
  int len ;
  rf = fopen("in.dat","r");
  wf = fopen("out.dat","w");
  fgets(s, 80, rf);
  fscanf(rf, "%c", &ch);
  len = strlen(s) - 1 ;
  w = s[len] ;
  if(w == ’\n’ || w == 0x1a) s[len] = 0 ;
  fun(s, ch);
  fprintf(wf, "%s", s);
  fclose(rf);
  fclose(wf);
}
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);
  NONO();
}

选项

答案{ char *p=s; int i=0; while(*p){ if(*p !=c)s[i++]=*p; p++; }

解析 进入fun函数,根据前面的分析:
(1)首先,设置一个指针变量指向字符串的头位置,并使用循环,依次查找字符串中的指定字符。
(2)若找到指定字符,则将后面位置的第一个非指定字符移到当前位置,并将其后的字符也依次前移。
(3)最后将处理的字符串输出。
转载请注明原文地址:https://jikaoti.com/ti/Snn0FFFM
0

相关试题推荐
最新回复(0)