问题 1847: 字符串中间和后边*号删除

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;
}
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值