首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用C语言实现shell中wc命令

wc命令是一个用于统计文件中字节数、字数、行数的Unix/Linux命令。下面是用C语言实现wc命令的示例代码:

代码语言:txt
复制
#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc != 2) {
        printf("Usage: %s <filename>\n", argv[0]);
        return 1;
    }

    FILE *file = fopen(argv[1], "r");
    if (file == NULL) {
        printf("Failed to open file: %s\n", argv[1]);
        return 1;
    }

    int lines = 0;
    int words = 0;
    int bytes = 0;
    int in_word = 0;
    char ch;

    while ((ch = fgetc(file)) != EOF) {
        bytes++;

        if (ch == '\n') {
            lines++;
        }

        if (ch == ' ' || ch == '\t' || ch == '\n') {
            in_word = 0;
        } else if (in_word == 0) {
            in_word = 1;
            words++;
        }
    }

    fclose(file);

    printf("Lines: %d\n", lines);
    printf("Words: %d\n", words);
    printf("Bytes: %d\n", bytes);

    return 0;
}

这段代码首先检查命令行参数的数量,确保只传入一个文件名。然后尝试打开该文件,如果打开失败则输出错误信息并退出。

接下来,代码使用循环逐个读取文件中的字符。在循环过程中,统计行数、字数和字节数。通过判断空格、制表符和换行符来确定是否处于一个单词内,并根据需要更新字数。

最后,关闭文件并输出统计结果。

这是一个简单的用C语言实现wc命令的示例,可以通过编译运行来统计文件的行数、字数和字节数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1分31秒

C语言 | 递归求n!

1分28秒

C语言 | 函数实现输出I love you

1分20秒

C语言 | 温度转换

1分43秒

C语言 | 用指向元素的指针变量输出二维数组元素的值

1分14秒

C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息

1分23秒

C语言 |求3*4矩阵中最大的元素值及行列

1分11秒

C语言 | 将一个二维数组行列元素互换

1分58秒

C语言 | 把学生信息放在一个结构体变量中

1分39秒

C语言 | 用同一表格输出若干人的数据

1分28秒

C语言 | 让用户选择1或2输出max或min

6分48秒

032导入_import_os_time_延迟字幕效果_道德经文化_非主流火星文亚文化

828
1分37秒

C语言 | 递归求年龄

领券