OpenJudge就算概论-过滤多余的空格
/*=====================================
过滤多余的空格
总时间限制:
1000ms
内存限制:
65536kB
描述
一个句子的每个单词之间也许有多个空格,过滤掉多余的空格,只留下一个空格
输入
一个字符串(长度不超过200),句子的头和尾都没有空格。
输出
过滤之后的句子
样例输入
Hello world.This is c language.
样例输出
Hello world.This is c language. 思路:
输入字符串a,用gets输入。
用两个下标i、j分别指向数组a,a[i]是将要被移动的字符,
a[j]是将要被a[i]覆盖的单元。
开始时i、j都指向a[0]。
从左向右扫描a数组,遇到非空格字符a[i]直接复制到a[j].
遇到空格字符则看a[j]的前一个是否空格,若是空格则新
出现的空格是多余的,否则新出现的空格是需要保留的。
======================================*/
#include<stdio.h>
#include<string.h>
int main()
{
char a[];
int i,j,len;
freopen("5.in","r",stdin);
gets(a);
len=strlen(a);
for(i=,j=;i<len;i++)//i是扫描原数组a的下标,j是调整后的下标。
{
if(a[i]!=' ')//非空格字符
{
a[j]=a[i];
j++;
}
else
{//遇到空格
if(a[j-]!=' ')//a[j]的前一个不是空格
{
a[j]=a[i];
j++;
}
}
}
a[j]='\0';
printf("%s\n",a);
return ;
}
看一个简单偷懒的实现:
#include <stdio.h>
int main(int argc, char *argv[])
{
char a[];
while(scanf("%s",a)!=EOF)
{
printf("%s ",a);
}
return ;
}
OpenJudge就算概论-过滤多余的空格的更多相关文章
- AC日记——过滤多余的空格 1.7 23
23:过滤多余的空格 总时间限制: 1000ms 内存限制: 65536kB 描述 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入 一行,一个字符串(长度不超过200), ...
- Openjudge-计算概论(A)-过滤多余的空格
描述: 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入一行,一个字符串(长度不超过200),句子的头和尾都没有空格.输出过滤之后的句子. 样例输入 Hello world.Th ...
- OpenJudge就算概论-最长单词2【寻找句子内部最长的单词】
/*===================================== 最长单词2 总时间限制: 1000ms 内存限制: 65536kB 描述 一个以'.'结尾的简单英文句子,单词之间用空格 ...
- OpenJudge就算概论-统计字符数
/*===================================== 统计字符数 总时间限制: 1000ms 内存限制: 65536kB 描述 判断一个由a-z这26个字符组成的字符串中哪个 ...
- 百练6247-过滤多余的空格-2015正式B题
B:过滤多余的空格 总时间限制: 1000ms 内存限制: 65536kB 描述 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入 一行,一个字符串(长度不超过200),句子的 ...
- c程序设计语言_习题1-9_将输入流复制到输出流,并将多个空格过滤成一个空格
Write a program to copy its input to its output, replacing each string of one or more blanks by a si ...
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- textarea出现多余的空格
今天使用textarea标签,调用数据的时候,出现一些多余的空格,如何改变属性都不能够经过某属性将空格去掉,经过查询,看了zuyi532的专栏(http://blog.csdn.net/zuyi532 ...
- 字符串中去除多余的空格保留一个(C#)
在C#的字符串,其中有许多空格,现要求是把多余的空格去除保留一个.原理是使用Split()方法进行分割,分割有一个选项是RemoveEmptyEntries,然后再把分割后的字符串Join起来. st ...
随机推荐
- Fractal Tree扩展
之前的博客实现了最基础的分形树,在这个基础上略微调整一些参数可以得到很多有趣的由分形树发展出的图案. private void drawShape(Graphics g, double x1, dou ...
- 转载 javascript中的正则表达式总结 二
学习正则表达式 今年的第一篇javascript文章就是这个正则表达式了,之前的文章是转载别人的,不算自己的东西,可以忽略不计,最近突然想把转载别人的东西 统统删掉,因为转载过的文章,我根本没有从中获 ...
- 对前端mvc的认识和思考
现在,我们经常都可以看到复杂的JavaScript应用程序,由于这些应用程序变得越来越复杂,一长串的jQuery回调语句或者通过应用程序在 各个状态执行不同的函数调用,这些做法都会变得无法再让人接受, ...
- HDU 5800 (DP)
Problem To My Girlfriend (HDU 5800) 题目大意 给定一个由n个元素组成的序列,和s (n<=1000,s<=1000) 求 : f (i,j,k,l, ...
- Magento给新产品页面添加分页
本文介绍如何让magento创建一个带分页功能的新到产品页面,方便我们在首页或者其它CMS Page调用和展示新到产品. 在Magento我们经常有的做法是建立一个可以调用新产品的block,然后通过 ...
- Day03_JAVA语言基础第三天
1.位运算符 1.面试题(掌握) ^:一个数据对同一个数据^两次,结果还是数据本身 举例:a ^ b ^ b = a 2.注意 知道结论,面试题,以后就完全不用看了 2.逻辑运算符(掌握) ...
- setSelection()和requestFocusFromTouch()
昨天我遇到一个问题,点击返回的时候要在onResume()中用setSelection()定位到刚才点击的item,因为点击item进入后,我又一直点击“下一个”按钮,但是返回的时候listview不 ...
- Think Python - Chapter 18 - Inheritance
In this chapter I present classes to represent playing cards, decks of cards, and poker hands.If you ...
- C# string[,]与string[][]的区别
对于这两者的区别: 1.入门:string[,]可读可写,而string[][]与string[]相同,不可对第二位进行写操作 static void Main(string[] args) { // ...
- archlinux设置无线网络连接
Check the driver $ lspci -k Open the network card $ ip link set <设备名> up Check device status $ ...