编写程序,假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是将字符串尾部的*号全部删除,

前面和中间的*号不删除。
例如,字符串中的内容为***A*BC*DEF*Z****,删除后,字符串中的内容应当是“***A*BC*DEF*Z”,在编写函数是,不得使用C语言提供的字符串函数

第1个回答  2011-12-25
//从后面看,找到第一个不是*,调试通过
#include<iostream.h>
void fun(char *p)
{
int i=0,j=0;
for(; ;i++) //求长度
{
if(*(p+i)=='\0')
break;
}
j=i;

for(;j>=0;j--) //从后往前找
{
if(*(p+j)!='*'&&*(p+j)!='\0') //找到不是*
{
*(p+j+1)='\0';
break;
}
}
}

void main()
{
char str[]="***A*BC*DEF*Z****";
char *p=&str[0];
fun(p);
cout<<p;
}
第2个回答  2011-12-25
void fun(char *array)
{
int i,count;
count=0;
for(i=strlen(array);i>=0;i--)
{
if(*(array+i)=='*')
{
*(array+i)='';
count=1;
if(count==1)
{
if(*(array+i)='*')
{
*(array+i)='';
}
else
{
break;
}
}
}
}
}本回答被提问者采纳
相似回答