| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 162 人关注过本帖
标题:求大佬帮忙看看这题咋做!
只看楼主 收藏
zhujie71
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-4-16
结帖率:100%
  已结贴   问题点数:20  回复次数:3   
求大佬帮忙看看这题咋做!
删除一个字符串中的数字,保留串中最开始的和结束部分的数字串,即把中间的数字串全部删除
程序的框架已经给出如下,请在一对注释中填写你的代码。修改注释对外部代码将被判失败。
#include <stdio.h>
#include <ctype.h>
void fun(char s[])
{
  /***** Your code here  ****/

  /**** Your code end  ****/
}
int main()
{
    int N,i;
   char txt[1024];
   scanf("%d",&N);
   getchar();
   for(i=0;i<N;i++)
  {
     gets(txt);
     fun(txt);
     puts(txt);
   }
   return 0;
}
4 天前 16:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:236
帖 子:5491
专家分:30738
注 册:2011-1-18
  得分:10 
void fun( char s[] )
{
    for( char *a=s, *b=s; isdigit(*b)?*b:(*a++=*b); ++b );
}

说句题外话,gets 早在上个世纪就被C/C++标准废弃了,有点儿捧着《易经》学量子物理的既视感。
4 天前 16:34
zhujie71
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-4-16
  得分:0 
回复 2楼 rjsp
初为菜鸟的我虽然没看懂,但谢谢了!
4 天前 17:26
李晨经纪人
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:142
专家分:599
注 册:2018-2-14
  得分:10 
回复 3楼 zhujie71
换成比较容易看懂的样子
程序代码:
void fun(char s[])
{
    char *a=s, *b=s;
    for( ; *b!='\0'; ++b )
    {
        if(!isdigit(*b))
            *a++=*b;            
    }
    *a='\0';
}
4 天前 21:57







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084270 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved