历届试题_空白格式化

标题:空白格式化

本次大赛采用了全自动机器测评系统。

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

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

以下代码实现了这个功能。仔细阅读代码,填写缺失的部分。

void f(char* from, char* to)
{
 char* p_from = from;
 char* p_to = to;
 
 while(*p_from==‘ ‘ || *p_from==‘\t‘ || *p_from==‘\n‘) p_from++;
 
 do{
  if(*p_from==‘ ‘ || *p_from==‘\t‘ || *p_from==‘\n‘){
   do{p_from++;} while(*p_from==‘ ‘ || *p_from==‘\t‘ || *p_from==‘\n‘);
   if(____________________) *p_to++ = ‘ ‘;  //填空位置
  }
 }while(*p_to++ = *p_from++);
}

请分析代码逻辑,并推测划线处的代码,通过网页提交。
    注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!

这道题仔细分析就可以知道是指针指向非题中的三种字符此时指针to才保留一个空格,但要注意的一点是下面代码注释除,这样写是有问题的。,一句话就是char*的内容存放在常量区,不可修改,否则出现系统崩溃问题,具体参考这篇博客:https://blog.csdn.net/yahohi/article/details/7427724(哎,基础没打好真的很容易被嘲笑,)

 1 #include<bits/stdc++.h>
 2
 3 using namespace std;
 4
 5 void f(char* from, char* to)
 6 {
 7     char* p_from = from;
 8     char* p_to = to;
 9
10     while(*p_from==‘ ‘ || *p_from==‘\t‘ || *p_from==‘\n‘) p_from++;
11
12     do{
13         if(*p_from==‘ ‘ || *p_from==‘\t‘ || *p_from==‘\n‘){
14             do{
15             p_from++;
16             } while(*p_from==‘ ‘ || *p_from==‘\t‘ || *p_from==‘\n‘);
17             if(*p_from!=NULL) *p_to++ = ‘ ‘;  //填空位置
18         }
19     }while(*p_to++ = *p_from++);
20 }
21
22
23 int main()
24 {
25    char a[]="   asad v     dwdwdw";
26    char b[]="";
27    //char* a="   asad v     dwdwdw";
28    //char* b="";
29    f(a,b);
30    cout << b<< "=b"<<endl;
31     return 0;
32  }

原文地址:https://www.cnblogs.com/henuliulei/p/10849573.html

时间: 2024-10-29 08:06:55

历届试题_空白格式化的相关文章

历届试题_生物芯片

标题:生物芯片 X博士正在研究一种生物芯片,其逻辑密集度.容量都远远高于普通的半导体芯片. 博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮. 这些光源的编号从 1 到 n,开始的时候所有光源都是关闭的. 博士计划在芯片上执行如下动作: 所有编号为2的倍数的光源操作一次,也就是把 2 4 6 8 ... 等序号光源打开 所有编号为3的倍数的光源操作一次, 也就是对 3 6 9 ... 等序号光源操作,注意此时6号光源又关闭了. 所有编号为4的倍

【蓝桥杯】历届试题 幸运数

  历届试题 幸运数   时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的“筛法”生成. 首先从1开始写出自然数1,2,3,4,5,6,.... 1 就是第一个幸运数. 我们从2这个数开始.把所有序号能被2整除的项删除,变为: 1 _ 3 _ 5 _ 7 _ 9 .... 把它们缩紧,重新记序,为: 1 3 5 7 9 .... .这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去.注意,是序号位置,不是那个数本身能否

算法笔记_189:历届试题 横向打印二叉树(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树时,则把该节点放入那个位置. 比如,10 8 5 7 12 4 的输入顺序,应该建成二叉树如下图所示,其中.表示空白. ...|-1210-|...|-8-|.......|...|-7.......|-5-|...........|-4 本题目要求:根据已知的数字,建立排序二叉树,并在标准输出中横

【蓝桥杯】历届试题 小朋友排队(运行超时)

  历届试题 小朋友排队   时间限制:1.0s   内存限制:256.0MB 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的程度.开始的时候,所有小朋友的不高兴程度都是0. 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推.当要求某个小朋友第k次交换时,他的不高兴程度增加k. 请问,要让所有小朋友按从低到高排队,他们的不高兴

【蓝桥杯】历届试题 公式求值

  历届试题 公式求值   时间限制:1.0s   内存限制:256.0MB 问题描述 输入n, m, k,输出下面公式的值. 其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如下. 输入格式 输入的第一行包含一个整数n:第二行包含一个整数m,第三行包含一个整数k. 输出格式 计算上面公式的值,由于答案非常大,请输出这个值除以999101的余数. 样例输入 313 样例输出 162 样例输入 201010 样例输出 359316 数据规模和约定 对于1

【蓝桥杯】历届试题 买不到的数目

  历届试题 买不到的数目   时间限制:1.0s   内存限制:256.0MB 问题描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17.大于17的任何数字都可以用4和7组合出来. 本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字. 输入格式 两个正整数,表示每种包装中糖的颗

【蓝桥杯】历届试题 翻硬币

  历届试题 翻硬币   时间限制:1.0s   内存限制:256.0MB 问题描述 小明正在玩一个“翻硬币”的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情形是:**oo***oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢? 我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求: 输

【蓝桥杯】历届试题 打印十字图

历届试题 打印十字图   时间限制:1.0s   内存限制:256.0MB 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.

【蓝桥杯】历届试题 核桃的数量

历届试题 核桃的数量   时间限制:1.0s   内存限制:256.0MB 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: 1. 各组的核桃数量必须相同 2. 各组内必须能平分核桃(当然是不能打碎的) 3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛) 输入格式 输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30) 输出格式 输出一个正整数,表示每袋核桃的数量.