zoukankan      html  css  js  c++  java
  • 【题解】洛谷-CF147A Punctuation

    做法分析

    来一个 getchar 的做法。

    用 getchar 有一个坑点需要注意:

    在标点输出空格后,后面字母前面不能再输出空格!

    然后主要的模拟流程就是:

    • 读入

      • 如果是换行符:break 掉。

      • 如果是空格:如果没有标点标记,打一个空格标记 space。

      • 如果是标点符号:去掉空格标记,输出符号后面再输出一个空格,打一个 标点标记 dots。

      • 如果是字母:如果有空格标记,输出一个空格、去掉空格标记、标点标记,再输出这个字母。

    空格标记的作用:只输出一个空格。

    标点标记的作用:在例如 haraki_,____a juruo 时避免输出两个空格。(下划线代表空格)

    Code

    #include<bits/stdc++.h>
    #include<windows.h>
    using namespace std;
    int main(){
    	int space=0,dots=0;
    	while(1){
    		char c=getchar();
    		if(c=='
    ')break;//换行
    		else if(c==' '){
    			if(space==0&&dots==0){//标记空格flag
    				space=1;
    			}
    		}else if(c=='.'||c==','||c=='!'||c=='?'){//标点
    			space=0;
    			dots=1;
    			cout<<c<<" ";
    		}else{
    			if(space==1){//输出一个空格
    				cout<<" ";
    				space=0;
    			}
    			cout<<c;
    			dots=0;
    		}
    	return 0;
    }
    

    P.S. 本代码已开启反抄袭,但不影响阅读。

  • 相关阅读:
    WebFrom与MVC异同
    MVC解决WebFrom的缺点
    转载ORM--EF框架
    转载 HashSet用法 合交并差
    用户管理模块数据库设计
    外键的增删改查练习
    索引:如何让主键不自动创建聚集索引???
    SQL-类型转换函数
    SQL-union
    SQL字符串函数
  • 原文地址:https://www.cnblogs.com/haraki/p/solution_CF147A.html
Copyright © 2011-2022 走看看