您的位置:首页 > 编程语言 > C语言/C++

2013年第四届蓝桥杯C/C++程序设计本科B组决赛 空白格式化(代码填空)

2016-05-13 20:52 260 查看
2013年第四届蓝桥杯C/C++程序设计本科B组决赛题目汇总:

http://blog.csdn.net/u014552756/article/details/51395463

空白格式化

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

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

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

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

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++);
}
思路:当中间的多个空白替换为一个空格,所以就是填空位置表达的意思。

答案:*p_from

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_from) *p_to++ = ' ';  //填空位置
}
}
while(*p_to++ = *p_from++);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: