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=='\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++);
}
输入
一行代码,不是标准格式。
输出
输出代码的标准形式。
样例输入
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("\n");
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=='\t' || *p_from=='\n')
p_from++; //第一个字符,当指针所指为空格或tab或换行
do
{
//当指针所指内容为空格或tab或换行,指针向后移动
//如果不为 空格或tab或换行,p_to=p_from,后两者均向后移动
if(*p_from==' ' || *p_from=='\t' || *p_from=='\n')
{
do
{
p_from++;
}
while(*p_from==' ' || *p_from=='\t' || *p_from=='\n');
//当指针所指内容为空格或tab或换行,指针向后移动
if(*p_from!=' '&&*p_from=='\t' && *p_from=='\n') *p_to++ = ' ';
//当指针内容不为空时,令p_to指针记录p_from 的地址
}
}
while(*p_to++ = *p_from++); //当*p_to不为空时循环
}
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("\n");
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=='\t' || *p_from=='\n')
p_from++; //第一个字符,当指针所指为空格或tab或换行
do
{
//当指针所指内容为空格或tab或换行,指针向后移动
//如果不为 空格或tab或换行,p_to=p_from,后两者均向后移动
if(*p_from==' ' || *p_from=='\t' || *p_from=='\n')
{
do
{
p_from++;
}
while(*p_from==' ' || *p_from=='\t' || *p_from=='\n');
//当指针所指内容为空格或tab或换行,指针向后移动
if(*p_from!=' '&&*p_from=='\t' && *p_from=='\n') *p_to++ = ' ';
//当指针内容不为空时,令p_to指针记录p_from 的地址
}
}
while(*p_to++ = *p_from++); //当*p_to不为空时循环
}
YTU 2574: 空白格式化的更多相关文章
- C语言 · 空白格式化
标题:空白格式化 “空白格式化”具体做法是:去掉所有首尾空白:中间的多个空白替换为一个空格.所谓空白指的是:空格.制表符.回车符. 填空为:*p_to<*p_from: #include< ...
- java实现第四届蓝桥杯空白格式化
空白格式化 本次大赛采用了全自动机器测评系统. 如果你的答案与标准答案相差了一个空格,很可能无法得分,所以要加倍谨慎! 但也不必过于惊慌.因为在有些情况下,测评系统会把你的答案进行"空白格式 ...
- 2013年第四届蓝桥杯C/C++程序设计本科B组决赛
1.猜灯谜(枚举) 2.连续奇数和(等差数列) 3.空白格式化(去除空格) 4.高僧斗法(阶梯nim) 5.格子刷油漆(dp) 6.农场阳光 1.猜灯谜 A 村的元宵节灯会上有一迷题:请猜谜 * 请猜 ...
- Git详解之七:自定义Git
自定义 Git 到目前为止,我阐述了 Git 基本的运作机制和使用方式,介绍了 Git 提供的许多工具来帮助你简单且有效地使用它. 在本章,我将会介绍 Git 的一些重要的配置方法和钩子机制以满足自定 ...
- 自定义 Git - 配置 Git
用git config配置 Git,要做的第一件事就是设置名字和邮箱地址: $ git config --global user.name "John Doe" $ git con ...
- 算法笔记_203:第四届蓝桥杯软件类决赛真题(C语言B组)
目录 1 猜灯谜 2 连续奇数和 3 空白格式化 4 高僧斗法 5 格子刷油漆 6 农场阳光 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 猜灯谜 标题:猜灯谜 A 村的元宵节灯会上有一迷题: ...
- Git详解之七 自定义Git
以下内容转载自:http://www.open-open.com/lib/view/open1328070404827.html自定义 Git 到目前为止,我阐述了 Git 基本的运作机制和使用方式, ...
- Git详解之特殊配置与钩子应用
前言 到目前为止,我阐述了 Git 基本的运作机制和使用方式,介绍了 Git 提供的许多工具来帮助你简单且有效地使用它. 在本章,我将会介绍 Git 的一些重要的配置方法和钩子机制以满足自定义的要求. ...
- 第四届蓝桥杯C++B组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜灯谜 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的 ...
随机推荐
- xtu summer individual 1 E - Palindromic Numbers
E - Palindromic Numbers Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %l ...
- python--如何在线上环境优雅的修改配置文件?
1.如何在线上环境优雅的修改配置文件? 原配置文件 #原配置文件 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 ...
- Python 双向队列Deque、单向队列Queue 模块使用详解
Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...
- Leetcode 273.整数转换英文表示
整数转换英文表示 将非负整数转换为其对应的英文表示.可以保证给定输入小于 231 - 1 . 示例 1: 输入: 123 输出: "One Hundred Twenty Three" ...
- 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]--Codeforces -35D. Animals
D. Animals time limit per test 2 seconds memory limit per test 64 megabytes input input.txt output o ...
- Spring Boot Reactive Streams
1 响应式编程规范 目标:provide a standard for asynchronous stream processing with non-blocking backpressure ht ...
- K/3Cloud 分页报表示例参考
分页报表首先需要实现的方法就是GetList,这个方法用来获得分页的条件. 其他的就和其他报表类似了. using System; using System.Collections.Generic; ...
- TYVJ P 1214 硬币问题
TYVJ P 1214 硬币问题 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 有n种硬币,面值为别为a[1],a[2],a[3]……a[n],每种都 ...
- BZOJ1126: [POI2008]Uci
$n \leq 100,m \leq 100$,$n*m$的01矩形,问从左下角开始往上走,每次转弯只能向右,不能经过重复点,不能撞到1,到达点$(x,y)$的方案数,$mod \ \ k$. 感人肺 ...
- 《TCP/IP详解卷1:协议》——第6章 ICMP:Internet控制报文协议(转载)
1.引言 ICMP被认为是IP层的一个组成部分,它传递差错报文以及其他需要注意的信息.ICMP报文通常被IP层或更高层协议(TCP或UDP)使用.一些ICMP报文把差错报文返回给用户进程. ICMP报 ...