题解 | #参数解析#

参数解析

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

#include <stdio.h>
#include <string.h>

int main() {
    int i, num = 0, flag = 0;
    char str[1001] = {0};
    fgets(str, 1001, stdin);

    int len = strlen(str);
    if(str[len - 1] == '\n') //末尾置0,标志字符串结束
    {
        str[len-1] = 0;
        len--;
    }

    for(i = 0; i<len; i++) //对空格和 “ ”做区分
    {
        if(str[i] == '\"') //“在计算机内部存储时\"、\"
        {
            str[i] = 0;
            flag = ~flag; //两次翻转即使得参数个数仅+1
        }
        if(str[i] == ' ' && !flag) //flag=1时表示“”里,空格不统计
        {
            str[i] = 0;
            num++;
        }
    }
    num++;
    printf("%d\n", num);
    printf("%s\n", str); //输出第一个被\0区分开的字符串
    for(i = 1; i<len; i++)
    {
        if(str[i] == 0 && str[i+1]) //以0以及后面非0作为判断参数个数的方法
        {
            printf("%s\n", &str[i+1]);
        }
    }

    return 0;
}

全部评论

相关推荐

给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务