怎么让两端的字符不被删除,只删除中间字符 - 爱问答

(爱问答)

怎么让两端的字符不被删除,只删除中间字符

输入样例

#####ab#c#d###efgh###

#

输出样例

#####abcdefgh###

#include<stdio.h>

void fun(char c[80], char x[1])

{int i = 0;

 int bit = 0;

 for(i = 0; c[i]; i++)

 {

    if(c[i] !=x[0] ) 

  {

      c[bit] = c[i];

      bit++;

                }

        }

        c[bit]='';

}

int main()

{

  char c[80];char a[1];

  scanf("%s",&c);

  scanf("%s",&a);

  fun(c,a);

  printf("%s",&c);

  return 0;

}


在你基础上改好的参考

#include<stdio.h>

#include<string.h> 

////删除中间字符 

void fun(char c[80], char x)

{

int i = 0,j,l;

int bit = 0;

while(c[i++]==x); //前面的

l=strlen(c)-1;

j=l;

while(c[j--]==x); //后面的

i--; //调整 

    j++; //调整 

for(bit=i; i<=j; i++) //从第一个不等开始 

{

if(c[i] !=x )

{

c[bit] = c[i];

bit++;

}

}

while(j++<l)

 c[bit++]=x; //后面的补上

c[bit]='';

}

int main()

{

char c[80];

char a;  //1个字符,就不要用字串了,且字串至少2个字符的后面有 

scanf("%s",&c);

scanf(" %c",&a); //注意前面的空格 

fun(c,a);

printf("%s",c); //输出不能用地址的 

return 0;

}


下一篇:为什么没有引用会返回常量,有引用返回变量

上一篇:X370芯片组只支持6个SATA接口,华硕PRIMEX370-PRO为什么有8个SATA接口

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?