Openjudge-计算概论(A)-过滤多余的空格

描述:

一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。

输入一行,一个字符串(长度不超过200),句子的头和尾都没有空格。输出过滤之后的句子。

样例输入

Hello      world.This is    c language.

样例输出

Hello world.This is c language.思路:从前往后扫(一个一个的),如果非空格并且非结尾,输出那个字母,或者如果遇到空格并且下一个也是空格,输出一个空格(防止多个空格的情况),否则不变(不要在意那个“i=i*1”,就是不变的意思啦O(∩_∩)O)这个代码的优点就是简单易懂,有效防止多个空格的情况!

代码如下:
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     char a[500],i;
 6     gets(a);
 7     for(i=0;i<strlen(a);i++)
 8     {
 9         if(a[i]!=‘ ‘&&a[i]!=‘\0‘) printf("%c",a[i]);
10         else if(a[i]==‘ ‘&&a[i+1]!=‘ ‘) printf(" ");
11         else i=i*1;
12     }
13     printf("\n");
14     return 0;
15 } 
时间: 2024-08-27 18:59:02

Openjudge-计算概论(A)-过滤多余的空格的相关文章

AC日记——过滤多余的空格 1.7 23

23:过滤多余的空格 总时间限制:  1000ms 内存限制:   65536kB 描述 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入 一行,一个字符串(长度不超过200),句子的头和尾都没有空格. 输出 过滤之后的句子. 样例输入 Hello world.This is c language. 样例输出 Hello world.This is c language. 思路: 大模拟: 来,上代码: #include<cstdio> #include<strin

【北大先修课】计算概论(A)题库全代码

题目很水就是全都是坑真是丧心病狂啊 把代码留下造福后来人QωQ 结构体与链表练习 生日相同2.0 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define MAXN 200 using namespace std; struct st { int m,d; string name; bool operator&

百练6247-过滤多余的空格-2015正式B题

B:过滤多余的空格 总时间限制: 1000ms 内存限制:  65536kB 描述 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入 一行,一个字符串(长度不超过200),句子的头和尾都没有空格. 输出 过滤之后的句子. 样例输入 Hello world.This is c language. 样例输出 Hello world.This is c language. #include <iostream> #include <stdio.h> #include

计算概论(A)/基础编程练习2(8题)/7:整数的个数

1 #include<stdio.h> 2 int main() { 3 int k,temp,n[3] = {0}; 4 5 // 输入k个正整数 6 scanf("%d",&k); 7 8 // 循环读入和进行算术 9 while(scanf("%d",&temp)!=EOF) { 10 switch(temp) { 11 case 1: 12 n[0]++; 13 break; 14 case 5: 15 n[1]++; 16 br

计算概论(A)/基础编程练习1(8题):1:大象喝水

计算概论(A)/基础编程练习1(8题)/1:大象喝水 地址:http://pkuic.openjudge.cn/base1/1/ 1 #include<stdio.h> 2 int main() { 3 /* 圆周率常数 */ 4 const float Pi = 3.14159; 5 6 /* 深h厘米 半径r厘米 均为整数 */ 7 int h, r; 8 scanf("%d %d", &h, &r); 9 10 /* 一桶水的升数 1升 = 1000毫

计算概论(A)/基础编程练习2(8题)/5:点和正方形的关系

1 #include<stdio.h> 2 #include<math.h> 3 int main() { 4 // 输入坐标 5 float x, y; 6 while(scanf("%f %f", &x, &y) != EOF) { 7 // 计算坐标点与原点的欧氏距离 8 float dist=sqrt(x*x+y*y); 9 10 /* 11 // 简单判断横坐标和纵坐标的截距abs(x).abs(y)和与原点距离dist 注意:abs(

计算概论(A)/基础编程练习2(8题)/1:求平均年龄

1 #include<stdio.h> 2 int main() { 3 // 声明与初始化 4 int n, count=1, s=0, age=0; 5 6 // 输入学生人数 7 scanf("%d", &n); 8 9 // 循环读入 加和 10 while(count<=n) { 11 scanf("%d",&age); 12 s+=age; 13 count++; 14 } 15 16 // 计算平均年龄输出 17 pr

计算概论(A)/基础编程练习(数据成分)/1:短信计费

1 #include<stdio.h> 2 int main() { 3 // 输入当月发送短信的总次数n和每次短信的字数words 4 int n,words; 5 scanf("%d",&n); 6 float price=0.0; 7 8 while(scanf("%d",&words)!=EOF) { 9 // 所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送 10 price+=(words%7

删除字符串中多余的空格

作者 : 卿笃军 今天遇到的一道笔试题,后来百度 了一下,原来是一道新浪的面试题. 题目大意是这样:给你一个任意字符串,要求你删除字符串中多余的空格. 示例:('_'表示空格) 1)"12__abc_98_"     ==> "12_abc_98" 2)"______65_21__54__3_89___"  ==>  "65_21_54_3_89" 思路:设2个下标i,pos一个用于遍历字符串(i),另外一个用于指