假定字符串中只包含字母和,编写函数删除字符串中字母前面的,并在main函数中调用并输出。 例如:字符串为ADFEG,程序执行后应该输出,ADFEG*。
代码如下,如有帮助,请帮忙采纳一下,谢谢。
#include <stdio.h>
void fun(char* s)
{
char* t;
int i,len = 0;
int endpos =0;
char *lst;
//计算字符串的长度
while(s[len] != '\0')
len++;
//从后往前找第一个非*字符
endpos=len -1;
while(s[endpos] == '*')
endpos--;
//abcde****** 11 - 4 -1//len -1 - endpos
s[endpos+1] = '\0';
while(*s != '\0')
{
if(*s == '*')
{
t =s;
while(*t != '\0')
{
*t = *(t+1);
t++;
}
t--;
*t = '\0';
}else
s++;
}
//补齐最后的*
for (i=0;i<len-endpos-1;i++)
{
*s = '*';
s++;
}
*s = '\0';
}
int main()
{
char buf[100]={0};
gets(buf);
fun(buf);
printf("%s\n",buf);
return 0;
}