题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

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

typedef struct{
    char filename[17];
    int line;
    uint8_t count;
}record_t;

//传入指向文件名的最后一个字符的指针
char* _get_filename_start(char * str)
{
    char *p = NULL;
    int i = 0;
    for (i = 1; i < 16; i++) {
        if (*(str-i) == '\\') {
            break;
        }
    }

    return str-i+1;
}
//10:42-11.13 半小时
int main() {
    int num = 0;
    char file_path[101] = {0};
    char line_buf[101] = {0};
    record_t rec_list[100];
    memset(rec_list, 0, sizeof(rec_list));

    while (fgets(line_buf, sizeof(line_buf), stdin) != NULL) {
        line_buf[strcspn(line_buf, "\r")] = 0;
        line_buf[strcspn(line_buf, "\n")] = 0;
        //printf("line_buf:%s\n", line_buf);

        //获取输出
        char *p = strchr(line_buf, ' ');
        int line = atoi(p+1);
        *p = 0;
        char *filename = _get_filename_start(p-1);
        //printf("filename:%s\n", filename);
        //printf("line:%d\n", line);

        //保存输入,需要判断有没有出现过
        int i = 0;
        char skip = 0;
        for (i = 0; i < num; i++) {
            if (strcmp(rec_list[i].filename, filename) == 0
            && rec_list[i].line == line) {
                rec_list[i].count++;
                skip = 1;
                break;
            }
        }
        if (skip) {
            continue;
        }

        //保存未出现的记录
        strncpy(rec_list[num].filename, filename, strlen(filename));
        rec_list[num].line = line;
        rec_list[num].count++;
        num++;
    }

    //输出后面8条
    int i = num >= 8 ? 8:num;
    for (; i > 0; i--) {
        printf("%s %d %d\n", 
            rec_list[num-i].filename, rec_list[num-i].line, rec_list[num-i].count);
    }

    return 0;
}

樯橹灰飞烟灭

全部评论

相关推荐

我见java多妩媚:大外包
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
440737次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41503次浏览 524人参与
# 北方华创开奖 #
107319次浏览 599人参与
# 地方国企笔面经互助 #
7930次浏览 18人参与
# 同bg的你秋招战况如何? #
75684次浏览 552人参与
# 虾皮求职进展汇总 #
114355次浏览 884人参与
# 阿里云管培生offer #
119898次浏览 2219人参与
# 实习,投递多份简历没人回复怎么办 #
2454094次浏览 34848人参与
# 实习必须要去大厂吗? #
55687次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149836次浏览 1977人参与
# 投递实习岗位前的准备 #
1195731次浏览 18546人参与
# 你投递的公司有几家约面了? #
33181次浏览 188人参与
# 双非本科求职如何逆袭 #
661934次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4734次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157604次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11381次浏览 271人参与
# 发工资后,你做的第一件事是什么 #
12431次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35621次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20091次浏览 240人参与
# 我的上岸简历长这样 #
451933次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39241次浏览 314人参与
# 非技术岗是怎么找实习的 #
155852次浏览 2120人参与
牛客网
牛客企业服务