假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。 例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G**

admin2010-11-26  26

问题 假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。
   例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G*******。
   注意:部分源程序给出如下。
   请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
   试题程序;
   #include <stdio. h>
   #include <conio. h>
   void fun (char *a)
   {
   }
   main()
   {
    char s[81];
    printf("Enter a string :\n");
    gets (s);
    fun (s);
    printf ("The string after deleted: \n");
            puts (s);
    }

选项

答案void fun (char *a) { char*p=a; while(*P==‘+’) p++; /*指针p指向字符串第一个字母*/ for(;*p!=‘\0’;p++,a++) *a=*p; /*从第—个字母开始,其后的字符都放入指针a所指的字符串中*/ *a=‘\0’; /*在字符串最后加上结束标记符*/ }

解析 在前面的改错题和编程题中,相关试题已经出现好多次了,我们在此提供另一种解答方法。
   #include<string.h>
   void fun (char *a)
   {char *p=a;
   while (*p==‘*’)p++;
   strcpy  (a,p);
   }
转载请注明原文地址:https://kaotiyun.com/show/NPID777K
0

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