删除字符串中指定的*

    假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。
    形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。
#include<stdio.h>
void fun(char a[],char *p)
{
	char ch=*p;
	p=a;				//将p指向a
	while(*a!=ch)		//遍历a至最后一个字母,如果不是*就赋值给p
	{
		if(*a!='*')
		{
			*p++=*a;
		}
		a++;
	}	
	while(*a!='\0')		//将剩余的值赋给p
	{
		*p++=*a++;
	}
	a=p;
	*(a++)='\0';	//将a的最后字符置'\0'
}
void main()
{
	char s[81],*p;
	p=s;
	printf("please input a string:");
	gets(s);
	while(*p!='\0')p++;
	p--;
	while(*p=='*')p--;		//将p指针指向最后一个字母
	fun(s,p);
	for(int i=0;s[i]!='\0';i++)
		printf("%c",s[i]);
	printf("\n");
}

  

posted @ 2019-08-18 18:50  石乐智先生  阅读(792)  评论(0编辑  收藏  举报