YTU 2574: 空白格式化
2016-02-14 22:59
288 查看
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不为空时循环 }
相关文章推荐
- 自己电脑可以做服务器吗?
- YTU 2573: 连续奇数和
- ConcurrentHashMap的锁分段技术
- [知其然不知其所以然-17] powertop的实现原理
- bzoj3105 新Nim游戏 贪心&线性基
- "No target device found."——Android Studio真机测试中遇到的问题
- 解决 gvim 菜单无法显示中文的问题
- YTU 2572: 猜灯谜
- 告白与告别
- 2016/02/14 codes
- Android Service 完全解析
- 并发容器ConcurrentHashMap与synchronized联合使用达到线程安全
- 订餐系统中一些功能代码
- python IDLE清屏
- To Java程序员:切勿用普通for循环遍历LinkedList
- 求解ax + by = c 这类方程
- Android插件开发机制
- msfvenom参数详解
- Linux运维初级教程(二)账户与安全
- Centos7.0 安装VNC后链接出现黑屏