关于在字符串中删除某个指定的字符的思路和代码。

 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 }

 

posted @ 2021-01-03 21:58  kagiii  阅读(69)  评论(0编辑  收藏