本题要求实现一个函数,字符串由字符和 * 号组成,要求除头部与尾部的 * 号外,删除字符串中其他 * 号。如 * * * ab * CDd * * * ef * * ,则函数执行结果为* * * abCDdef * * 。
函数接口定义:
void move(char a[]);
裁判测试程序样例:
#include <stdio.h>
#define N 100
void move(char a[]);
int main()
{
char a[N];
scanf("%s",a);
move(a);
printf("%s",a);
return 0;
}
/* 请在这里填写答案 */
答案
void move(char a[])
{
int i,j,m,n,count=0,k;
m=strlen(a);
for(i=0;i<m;i++)
if(a[i]!='*')
{k=i;j=i;break;}
for(k;a[k]!='\0';k++)
if(a[k]!='*')
{a[j++]=a[k];}
for(n=m-1;a[n]=='*';n--)
if(a[n]=='*')
count++;
for(i=0;i<count;i++)
a[j+i]='*';
a[j+i]='\0';
}