题解 | #参数解析#

参数解析

http://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char a[1000];
    while(gets(a)!=NULL)
    {
        int len = strlen(a);
        int flag = 0;
        int count = 0;
        for(int i =0;i<len;i++)
        {
            if(a[i]=='"'&&flag==0)
            {
                flag = 1;
            }
            else if(a[i]=='"'&&flag==1)
            {
                flag = 0;
            }
            else if(a[i]==' '&&flag==0)
            {
                count++;
            }
        }
        printf("%d\n",count+1);
        for(int i =0;i<len;i++)
        {
            if(a[i]==' '&&flag==0)
            {
                printf("\n");
                continue;
            }
            if(a[i]=='"'&&flag==0)
            {
                flag = 1;
                continue;
            }
            if(a[i]=='\"'&&flag==1)
            {
                flag = 0;
                continue;
            }
             printf("%c",a[i]);
        }
        printf("\n");
    }

    return 0;
}

这个解题思路是我见过最好的解题思路 学到了很多,

1. 第一个循环解决了输出几个参数的问题

2. 第二个循环其实跟第一个类似,在碰到' '/'"' 等符号的时候选择性的跳过,并且输出换行符, 是我见过最简洁的思路.!

全部评论
压根没考虑多空格的情况
点赞 回复 分享
发布于 2022-06-21 18:20

相关推荐

02-26 01:13
集美大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务