2020-09-23

在这里插入图片描述
要删除后面的多余的字符
我们用个指针 指向最后一个元素,从后向前,到第一个!*的字符个数n

#include <stdio.h>
void  fun(char* a, int  n)
{
    int i = 0, k = 0;
    char* p, * t;
    //p t 指向数组a第一个元素
    p = t = a;
    while (*t) 
		t++;
    t--;//指针t向前移一位 因为最后一位是空制符
    while (*t == '*')
    {
        k++;
        t--;
    }
    //现在t指向的是后面第一个`*`;
    if (k > n)
    {
    //p<()  意思是 p在最后一位 空位前面
        while (*p && p < t + n + 1)
        {
            a[i] = *p;
            i++; 
            p++;
        }
        a[i] = '\0';
    }
}

void main()
{  char  s[81];  int  n;
   void NONO (  );
   printf("Enter a string:\n");gets(s);
   printf("Enter n :  ");scanf("%d",&n);
   fun( s,n );
   printf("The string after deleted:\n");puts(s);
   NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *in, *out ;
  int i, n ; char s[81] ;
  in = fopen("in.dat","r") ;
  out = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fscanf(in, "%s", s) ;
    fscanf(in, "%d", &n) ;
    fun(s,n) ;
    fprintf(out, "%s\n", s) ;    
  }
  fclose(in) ;
  fclose(out) ;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值