Problem H. L05-08 去除*号
假定输入的字符串中只包含字母和* 号。请编写函数fun,它的功能是除了字符串前导的号之外,将串中其他号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为ABCDEFG**,删除后,字符串中的内容则应当是ABCDEFG。
输入
字符串
输出
除了前导的号之外,其他号全部删除的字符串
样例

解题思路:
创建一个char指针数组,用gets语句接收,然后循环遍历,用数组存储''直到查到第一非''的后停止,再来判断,如果检查到的字符为'*'则跳过用之前的数组继续存储下一个,如此反复,最后puts输出
#include <bits/stdc++.h>
void fun(char *a)
{
int i=0;
char *p=a;
//保留前面的*
while(*p&&*p=='*')
{
a[i]=*p;
i++;
p++;
}
//删除后面的*
while(*p)
{
if(*p!='*')
{
a[i]=*p;
i++;
}
p++;
}
a[i]='\0';
}
int main()
{
char s[80];
gets(s);
fun(s);
puts(s);
return 0;
}

浙公网安备 33010602011771号