C语言编程输入的字符串中包含字母和*号。请编写函数,功能是:除尾部的*号之外,将字符串中其他的*号删除

例如,字符串中的内容为:****A*BB*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG*******

#include "stdio.h"
#include "string.h"
main()
{
char a[100],b[100];
int i=0,j=0,n=0;
printf("请输入带*号的字符串!:\n");
gets(a);
printf("\n");
//puts(a);
while(a[i]!='\0')
{
if(a[i]!='*')
{
b[j++]=a[i];
n=0;
}
else
n++;
i++;
}
for(i=0;i<n;i++)
b[j++]='*';
b[j]='\0';
printf("\n");
puts(b);
}

原理很简单:把不是‘*’的值挑先出来放到数组B中,在把字符最后面的*号给补上就OK了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-26
char a[100];
gets(a);
char *p=a;
while(*p)p++;
p--;
while(*p=='*')p--;
char *q=a;
while(q<=p)
{if(*q!='*')
putchar(*q);
q++;
}
while(*p)
putchar(*p++);
第2个回答  2011-08-27
void fun(char *str)
{
int i,len;
len=strlen(str);
for(i=0;i<len-2;i++)
str[i]=str[i+1];
str[i]='\0';
}