T1
题目描述
人们为了增加文档的美观度,通常会将文档中相邻的英文字母与阿拉伯数字之间以一个空格分离。
现有一份文档 S ,其中可能有字母与数字相邻。你需要给 S 中所有相邻的字母与数字之间添加一个空格。
输入格式
从标准输入读入数据。
一行一个字符串 S ,保证 S 中只有大小写英文字母、阿拉伯数字与空格。
保证 S 的第一个字符与最后一个字符均不为空格。
输出格式
输出到标准输出。
输出一行一个字符串,表示添加空格后的 S 。
样例输入
Hel1o w0rLd
样例输出
Hel 1 o w 0 rLd
数据范围
设 |S| 表示 S 的长度。
对于 100% 的数据,保证 1≤|S|≤100 。
题解及代码
有一些特殊情况,不如开头和结尾为数字,仅有一个字母等情况,需要特殊判断
#include <bits/stdc++.h>
using namespace std;
string s;
int check(char c)
{
if(c>='0' && c<='9') return 1;
else if(c==' ') return 2;
else return 0;
}
int main()
{
getline(cin, s);
int t=s.length();
for(int i=0 ; i<t-1 ; i++)
{
if(check(s[i])==1)
if(check(s[i+1])==2)
if(i==0)
printf("%c", s[i]);
else printf(" %c", s[i]);
else
{
if(i