题解 | #参数解析#

参数解析

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

#include<stdio.h>

int main(){
    char str[1001]  = {'0'};
    while(gets(str)){    //1.接收字符串
        int len = strlen(str);    //2.获取字符串总长度
        //3.计算参数个数--遇到"跳过计数
        int count = 1;
        if(str[0] == ' '){    //3.1若第一个是空格,则第一个不计参数数
            count = 0;
        }
        //3.2计算参数数
        for(int i = 0; i <len; i++){
            if(str[i] == ' ')
                count++;    //3.2.1若出现空格 先参数数累加  
            if(str[i] == '"'){    //3.2.2判断是否遇到首"
                //3.2.3跳转至"中的第一个字符 
                //3.2.4序列值累加直到遇到末"为止,期间只计数,此时若""中出现空格也不计数
                while(str[++i] != '"'){}
            }
        }
        printf("%d\n", count);
        
        //4.输出分解后的参数
        for(int i = 0; i < len; i++){
            if(str[i] != ' '){
                if(str[i] != '"'){
                    printf("%c", str[i]);    //4.1没有遇到"时正常输出直到' '为止
                }
                else{//4.2遇到首"时,跳转至"内第一个字符串开始连续输出至遇到末"为止
                    while(str[++i] != '"'){
                        printf("%c", str[i]);
                    }
                }
            }
            else{
                printf("\n");     //5.各参数输出结束后(即遇到' '或者末'"'),回车换行
            }
        }
    }
    return 0;
}
全部评论

相关推荐

阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行
点赞 评论 收藏
分享
Aurora23:属于挂一半,暂时进池子了,隔一段时间没有其他组捞的话就彻底结束了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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