C++中星号删除问题!!!!!!!!

2025-01-02 05:23:47
推荐回答(1个)
回答1:

#include
using namespace std;
void delStar(char *s)
{
int i,j,start,end,len,count=0;
len=strlen(s);

//找到不是星号的第一个位置
for(i=0;i if(s[i]!='*')
{
start=i;
break;
}
//找到不是星号的最后一个位置
for(i=len-1;i>=0;i--)
if(s[i]!='*')
{
end=i;
break;
}
//开始删除除开始外的星号
for(i=start;i if(s[i]=='*')
{
count++;
for(j=i;j s[j]=s[j+1];
if(s[i]=='*')
i-=1;
}
//补上末尾星号
j=len-end-1;
len=strlen(s);
for(i=len;j>0;j--)
s[i++]='*';

}
void main()
{
char s[100]="**D888**jiajig*ji***";
delStar(s);
cout<<"删除后:"< cout<}
这是我写的程序,运行没问题,不过我觉得还有点繁琐,还没有æƒ