编写程序读取网页文件(例如:a.htm),找出标题内容以及在文件中行数写入文件result.txt中,同时统计标题中数字字符和字母字符的个数(分别编写函数实现统计),也写入文件result.txt中,result.txt中写入的格式如下: a.htm网页的标题是: 标题在文件 a.htm网页的第几行: 标题中数字字符的个数: 标题中字母字符的个数: 注意:网页文件(例如:a.htm)每行最多255个字符。 要求: (1)输入输出要有文字说明,例如:读文件xxx等; (2)程序代码的重要部分要有注释; (3)代码结构清晰,有缩进格式; (4)有程序调试过程截图,包括错误分析; (5)建议采用模块化设计,main主函数尽可能只有函数调用语句;
时间: 2024-02-29 20:52:48 浏览: 161
编写程序,该程序实现打开一个文本文件,每次读取一行内容,将每行作为一个字符串读入,并将字符串输出显示到屏幕上。
5星 · 资源好评率100%
以下是一个基于C语言的程序,可以实现您所需的功能:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_LINE_LEN 256
// 统计字符串中数字字符的个数
int count_digits(char *str) {
int count = 0;
for (int i = 0; i < strlen(str); i++) {
if (isdigit(str[i])) {
count++;
}
}
return count;
}
// 统计字符串中字母字符的个数
int count_letters(char *str) {
int count = 0;
for (int i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) {
count++;
}
}
return count;
}
int main() {
FILE *fp, *out;
char line[MAX_LINE_LEN];
char *title = NULL;
int title_line = 0;
int line_count = 0;
int digit_count = 0;
int letter_count = 0;
// 打开网页文件
fp = fopen("a.htm", "r");
if (fp == NULL) {
printf("无法打开文件 a.htm!\n");
return 1;
}
// 逐行读取网页文件内容
while (fgets(line, MAX_LINE_LEN, fp) != NULL) {
line_count++;
// 查找标题内容
if (strstr(line, "<title>") != NULL) {
title = strtok(line, "<>");
title = strtok(NULL, "<>");
title = strtok(title, "\r\n");
title = strtok(title, " ");
digit_count = count_digits(title);
letter_count = count_letters(title);
title_line = line_count;
}
}
// 关闭网页文件
fclose(fp);
// 打开输出文件
out = fopen("result.txt", "w");
if (out == NULL) {
printf("无法创建文件 result.txt!\n");
return 1;
}
// 输出结果到文件
fprintf(out, "a.htm网页的标题是:%s\n", title);
fprintf(out, "标题在文件 a.htm 网页的第%d行:\n", title_line);
fprintf(out, "标题中数字字符的个数:%d\n", digit_count);
fprintf(out, "标题中字母字符的个数:%d\n", letter_count);
// 关闭输出文件
fclose(out);
printf("程序执行完毕!结果已写入 result.txt 文件中。\n");
return 0;
}
```
程序首先打开名为 "a.htm" 的网页文件,然后逐行读取文件内容。在读取每一行的过程中,程序查找标题内容,并统计标题中数字字符和字母字符的个数。
程序中定义了两个函数 `count_digits()` 和 `count_letters()`,用于统计标题中数字字符和字母字符的个数。这些函数在程序中被调用,以统计标题的数字字符和字母字符个数。这里,我们使用了 C 标准库函数 `isdigit()` 和 `isalpha()`,分别用于判断字符是否为数字和字母。
最后,程序将结果输出到名为 "result.txt" 的文件中。程序使用了 C 标准库函数 `fopen()` 和 `fclose()` 来打开和关闭文件,使用了 `fprintf()` 函数来将结果输出到文件中。
希望这个程序能够帮助您完成重庆大学 C 语言实验。如果您有任何问题或需要进一步的帮助,请随时联系我。
阅读全文