题解 | #参数解析#

参数解析

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;
}
全部评论

相关推荐

今天 11:23
重庆邮电大学 C++
点赞 评论 收藏
分享
头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务