Codeforces 291B. Command Line Arguments
传送门:https://codeforces.com/problemset/problem/291/B
提醒自己:
记得适时地使用函数,不仅可以方便运算,也可以使代码更加好看。
题目大意:
这个问题大意是给你一行字符,然后我们的任务就是把 两个’ " ’ 所包住的和不在两个引号间的且最近的两个空格所包住的字符用 ’ < ’ 和 ’ > ’ 包起来输出。
主要想法:
我们可以先输入,然后直接遍历一遍,用两个函数来分别接 ’ " ’ 的情况和为字母的情况,至于空格就让它随风去吧。
代码实现:
#include <bits/stdc++.h>
using namespace std;
char a[100500];
int F1(int i)
{
cout<<'<';
++i;
for(;a[i]!='"'&&a[i]!='\0';++i)cout<<a[i];
cout<<'>'<<endl;
return i;
}
int F2(int i)
{
cout<<'<';
for(;a[i]!=' '&&a[i]!='\0';++i)cout<<a[i];
cout<<'>'<<endl;
return i;
}
int main()
{
gets(a);
for(int i=0;a[i]!='\0';i++)
{
if(a[i]=='"')i=F1(i);
else if(a[i]!=' ')i=F2(i);
else;
if(a[i]=='\0')break;
}
return 0;
}