解题思路:
1.跳过前导'*'
2.记录第一个非'*'的字符的下一个位置,后面从该位置填补字符
3.继续往下检索字符,直到遇到'\0'
4.检索过程中遇到的非'*'字符填入之前记录的位置,并将位置+1
5.字符检索完毕后填'\0',函数结束
注意事项:
1.第一次记录的位置要正确
2.不要忘记补上'\0'
参考代码:
#include <string.h> #include <stdio.h> void fun(char *a) { int n = 0; int pos; while(a[n] == '*') n++; n++; pos = n; while(a[n] != '\0') { if(a[n] != '*') { a[pos++] = *(a+n); } n++; } a[pos] = '\0'; } main() { char s[81]; printf("Enter a string:\n"); gets(s); fun(s); puts(s); }
0.0分
0 人评分