其他分享
首页 > 其他分享> > 【题解】洛谷-CF147A Punctuation

【题解】洛谷-CF147A Punctuation

作者:互联网

做法分析

来一个 getchar 的做法。

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

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

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

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

标点标记的作用:在例如 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=='\n')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. 本代码已开启反抄袭,但不影响阅读。

标签:dots,输出,CF147A,space,题解,Punctuation,标点,空格,标记
来源: https://www.cnblogs.com/haraki/p/solution_CF147A.html