没看懂题意,假定题目的意思是删除一个数组中所有非前导的*,如果是这样,采用双指针或双下标的方法,其中一个指针一个字符一个字符的走,另一个指针则是碰到不是*的情况才走
#include<stdio.h>
void deleteStar(char* arr){
int i=0,j; //设两个下标
while(arr[i]=='*'){ //不管前导的*,将i移动至第一个非*的位置
i++;
}
j=i;
while(arr[i]!='\0'){
if(arr[i]!='*'){ //第i个位置不是*
arr[j]=arr[i]; //将第i个位置的字符赋值到第j位置
j++;
}
i++;
}
arr[j]='\0';
}
int main()
{
char str[100];
gets(str);
deleteStar(str);
puts(str);
return 0;
}