要输出的参数两侧有两种情况,可能由“ ”包着,也可能由空格包着,所以得根据情况判断。要注意首位置和末位置为要输出参数时,条件不一样。
#include<stdio.h>
#include<string.h>
char s[1000000];
int main(){
while(gets(s)!=NULL){
int a,p;
int len=strlen(s);
a=0;
for(int i=0;i<len;++i){
if(i==0&&s[i]!=' '&&s[i]!='"'){
printf("<");
for(;i<len;++i){
if(s[i]==' '){
i=i-1;
break;
}
printf("%c",s[i]);
}
printf(">\n");
}
else{
if(a==1&&s[i]=='"'){
printf("<");
if(i!=p)
for(int j=p;j<i;++j)
printf("%c",s[j]);
printf(">\n");
a=0;
continue;
}
if(s[i]=='"'){
++a;
p=i+1;
}
if(a==0&&s[i]==' '&&s[i+1]!='"'&&s[i+1]!=' '&&len!=i+1){
printf("<");
for(i=i+1;i<len;++i){
if(s[i]==' '){
i=i-1;
break;
}
printf("%c",s[i]);
}
printf(">\n");
}
}
}
}
return 0;
}