题解 | #配置文件恢复#

配置文件恢复

http://www.nowcoder.com/practice/ca6ac6ef9538419abf6f883f7d6f6ee5

题意先匹配第一关键字再匹配第二关键字容易误导,一起匹配就好了。
先判断第二关键字是否为空
#include <stdio.h>
#include <string.h>
#define SIZE 20

const char *result[7] = {
    "unknown command","reset what","board fault","where to add",
    "no board at all","impossible","install first"
};

int match(char *arr);

int main(void)
{
    char arr[SIZE+2];
    while(fgets(arr,SIZE+1,stdin)){
        if(arr[strlen(arr) - 1] == '\n') arr[strlen(arr) - 1] = '\0';
        printf("%s\n",result[match(arr)]);
    }
    return 0;
}

int match(char *arr)
{
    char *first,*second,*pt;
    int ans = 0;
    
    pt = arr;
    while(*pt != ' ' && *pt != '\0') pt++;
    if(*pt = ' ') *pt++ = '\0';
    first = arr;
    second = pt;
    
    if(*second == '\0'){
        if(strstr("reset",first)) ans = 1;
    }else{
        if(strstr("reset",first) && strstr("board",second)){
            if(strstr("reboot",first) && strstr("backplane",second)) ans = 0;
            else ans = 2;
        }else if(strstr("board",first) && strstr("add",second)){
            if(strstr("backplane",first) && strstr("abort",second)) ans = 0;
            else ans = 3;
        }else if(strstr("board",first) && strstr("delete",second)){
            ans = 4;
        }else if(strstr("reboot",first) && strstr("backplane",second)){
            ans = 5;
        }else if(strstr("backplane",first) && strstr("abort",second)){
            ans = 6;
        }
    }
    return ans;
}



全部评论

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务