wc命令是一个用于统计文件中字节数、字数、行数的Unix/Linux命令。下面是用C语言实现wc命令的示例代码:
#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命令的示例,可以通过编译运行来统计文件的行数、字数和字节数。
领取专属 10元无门槛券
手把手带您无忧上云