解题思路:
1.在搜索全串过程中,若开始有'*',就将前导'*'存入另一串中,直到发现其它字符或串尾;
2.原串后续所有字符在未到串尾前,若非'*',就接着存入到另一串;
3.将处理好的另一串存回原串。
注意事项:
在步骤二过程中,原串字符非'*'时,访问另一串的下标才可以增加接收新字符,而原串的下标顺序增加访问接下来的字符。
参考代码:#include
int main(){
void fun(char *);
char s[81];
gets(s);
fun(s);
puts(s);
return 0;
}
void fun(char *a){
int i,j;
char b[81];
for(i=0;a[i]=='*'&&a[i]!='\0';i++)
b[i]=a[i];//若开始有*就将字符串a前导的*号保存到b中
j=i;
while(a[i]!='\0'){
if(a[i]!='*') b[j++]=a[i];
i++;
}//a后续字符若非*就保存到b中
b[j]='\0';
for(i=0;b[i]!='\0';i++)
a[i]=b[i];//处理好的b串存回a串
a[i]='\0';
}