Problem H. L05-08 去除*号

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

输入

字符串

输出

除了前导的号之外,其他号全部删除的字符串

样例
image

解题思路:
创建一个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;
}
posted @ 2022-10-11 16:09  131452lin  阅读(93)  评论(0)    收藏  举报