1 /*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。
2 在编写函数时,不得使用C语言提供的字符串函数。
3 例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。
4 注意:部分源程序给出如下。
5 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
6 试题程序: */
7 #include <string.h>
8 #include <stdio.h>
9 void fun (char *a)
10 {
11 /************Begin*************/
12 int i,k,d,c,j;
13 char t;
14 for (k = 0; a[k] == '*'; k++)
15 ;
16 for(i=k+1;a[i]!='\0';i++)
17 if (a[i] == '*')
18 {
19 for (d = i; a[d] == '*'; d++) //统计有多少个*是连着的。
20 ;
21 c = d - i; //计算间隔,假如三个*号连着间隔c为3. 则3个3个往前移。
22
23 for (j = i + c; a[j] != '\0'; j++)
24 a[j - c] = a[j];
25 a[j - c] = a[j]; //移动完在结尾加'\0';同时当最结尾有“*******\0”的时候此句能把'\0'移动到删除后最后一位。
26 }
27
28
29
30
31 /************End**************/
32 }