现在有一串字符需要输入,规定输入的字符串中只包含字母和*号。请编写程序,实现以下功能:除了字符串前后的*号之外,将串中其他的*号全部删除。

本文介绍了一个C语言程序,该程序能够处理包含特殊字符(如星号)的字符串。通过对输入字符串进行分析,程序可以统计字符串的长度、开头和结尾星号的数量,并移除位于字符间的星号,最后调整字符串格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>

int main()

{

    intlen=0,head=0,tail=0,testtail=0,i,j;

    char a[99];

    gets(a);

    for(i=0;a[i]!='\0';i++)

    len++;                                 //求字符串长度

    for(i=0;a[i]!='*';i++){

       head++;                                //求开头星号个数

    }

    for(i=len-1;a[i]=='*';i--){

       tail++;                                //求尾部星号个数

    }

    for(i=head+1;a[i]!='\0';i++){             //检测字母字符并删除中间的星号

       if(a[i]!='*'&&a[i+1]=='*'){

           for(j=i+1;a[j]!='\0';j++){

              a[j]=a[j+1];

           }

           a[len-1]='\0';

           len--;

           i--;                            //再次检查,当字母间有多个星号时可删去

       }

    }

    len--;

    for(i=len;a[i]=='*';i--){

    testtail++;                               //检验尾部星号个数

}

    for(i=len;i<=len+(tail-testtail);i++)    //补回尾部星号

    a[i]='*';

    puts(a);

    return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值