要输出的参数两侧有两种情况,可能由“ ”包着,也可能由空格包着,所以得根据情况判断。要注意首位置和末位置为要输出参数时,条件不一样。
#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;
}

本文介绍了一个C语言程序,该程序能够从输入的字符串中提取特定的参数,并将这些参数用< >符号标记出来。它能处理两种类型的参数:一种是由双引号括起来的参数,另一种是由空格界定的参数。

312

被折叠的 条评论
为什么被折叠?



