1847: 字符串中间和后边*号删除
假定输入的字符串中只包含字母和号。请编写函数 fun(),它的功能是:除了字符串前导的号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
样例输入
abcdefg***
样例输出
****abcdefg
/*
2020.2.14
除了字符串前导的*号之外,将串中其他*号全部删除
*/
#include<string.h>
#include<stdio.h>
int fun(char *a){ // ****a*bc*def*g****
int i,j=0;
for(i=0;a[i];i++){ //遍历a的每一个元素
if(a[i]!='*'){ //如果元素不为 ‘* ’
break; //跳出循环
} //找到了第一个非*元素的位置 并且保持了前导*不被删除
}
for(j=i;a[i];i++){ // j=i=4 继续遍历a
if(a[i]!='*'){ //如果元素不为 ‘* ’
a[j++]=a[i]; //关键点 a[j++]存储的是遍历a的非*元素 从而达到了删除串中和串尾的 *
}
}
a[j]=0; //标记截至位
}
int main(){
char s[81];
gets(s);
fun(s);
puts(s);
return 0;
}