zoukankan      html  css  js  c++  java
  • YTU 2574: 空白格式化

    2574: 空白格式化

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 233  解决: 118

    题目描述

    恭喜你进入了蓝桥杯总决赛,本次大赛采用了全自动机器测评系统。

    如果你的答案与标准答案相差了一个空格,很可能无法得分,所以要加倍谨慎!

        但也不必过于惊慌。因为在有些情况下,测评系统会把你的答案进行“空白格式化”。其具体做法是:去掉所有首尾空白;中间的多个空白替换为一个空格。所谓空白指的是:空格、制表符、回车符。

        以下代码实现了这个功能。仔细阅读代码,填写缺失的部分,并补充完整使其能够工作。

    void f(char* from, char* to)

    {

           char* p_from = from;

           char* p_to = to;    

           while(*p_from==' ' || *p_from==' ' || *p_from==' ') p_from++;      

           do{

                  if(*p_from==' ' || *p_from==' ' || *p_from==' '){

                         do{p_from++;} while(*p_from==' ' || *p_from==' ' || *p_from==' ');

                         if(____________________) *p_to++ = ' ';  //填空位置

                  }

           }while(*p_to++ = *p_from++);

    }

    输入

    一行代码,不是标准格式。

    输出

    输出代码的标准形式。

    样例输入

          char*        p_from =     from;    

    样例输出

    char* p_from = from;

    提示

    代码的标准格式是,首尾没有空格,中间有空格的地方应该只有一个空格不能有多个。

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include<stdio.h>
    int main()
    {
        void f(char* from, char* to);
        char pf[1000],pt[1000];
        char *pff=pf,*ptt=pt;
        while(~scanf("%s",pf))
        {
            f(pff,ptt);
            printf("%s ",pt);
        }
        printf("
    ");
        return 0;
    }
    void f(char* from, char* to)
    {
        char* p_from = from;//对指针赋值,其中p_from为开始
        char* p_to = to;     //p_to 为结束
        while(*p_from==' ' || *p_from=='	' || *p_from=='
    ')
            p_from++;       //第一个字符,当指针所指为空格或tab或换行
        do
        {
            //当指针所指内容为空格或tab或换行,指针向后移动
            //如果不为 空格或tab或换行,p_to=p_from,后两者均向后移动
            if(*p_from==' ' || *p_from=='	' || *p_from=='
    ')
            {
                do
                {
                    p_from++;
                }
                while(*p_from==' ' || *p_from=='	' || *p_from=='
    ');
                //当指针所指内容为空格或tab或换行,指针向后移动
                if(*p_from!=' '&&*p_from=='	' && *p_from=='
    ') *p_to++ = ' ';
                //当指针内容不为空时,令p_to指针记录p_from 的地址
            }
        }
        while(*p_to++ = *p_from++); //当*p_to不为空时循环
    }

  • 相关阅读:
    POJ 1680 Fork() Makes Trouble
    课堂改进意见
    梦断代码 读后感3
    梦断代码 读后感2
    找一问题
    软件评价——搜狗输入法
    《梦断代码》读后感1
    站立会议第十天
    站立会议第九天
    站立会议第八天
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989474.html
Copyright © 2011-2022 走看看