一次文件操作题分享:
编写一程序D1402.C实现以下功能
程序运行时,先从键盘输入一个文本文件的文件名(约定:字符数≤127字节,可含路径)和一个字符串(约定:字符数≤20字节,其中不含空格、TAB等,后面称之为Str),再在屏幕上显示该文件的内容。要求显示完内容后,在屏幕上输出文件的行数(行之间以’\n’为分隔、每行的长度不定但均≤200个字节)、字符串Str在文件中第1次出现的行号和最后一次出现的行号(查找时不区分大小写、不跨行查找,若未找到,则行号显示为-1)。注意,行的编号从1开始计。
下载程序运行时测试用的文件Test.txt。编程可用素材:printf(“input the file’s name and the string: “)…、printf(”\nfile open error!”)…、printf("------------------------File content:----------------------\n")…、printf("\n------------------------File summary:----------------------\n")…、printf("… lines, first line: …, last line: …\n"…。
程序的运行效果应类似地如图1所示,图1中的“input the file’s name and the string: test.txt value”中的“test.txt value”是从键盘输入的内容(“test.txt”是文件名,“value”是需查找的字符串)。图1中的“10 lines, first line: 6, last line: 9”表示文件一共有10行,字符串“value”在文件中第一次出现的行号为6、最后一次出现的行号为9。不存在的字符串,出现行号为-1。
代码分享:
#include <stdio.h>
#include <stdlib.h>
void readfile(char filename[128], char file[100][204], int *totalline);
void findstr(char file[100][204], char str[24], int *firstline, int *lastline, int totalline);
int main(void)
{
int i;
int totalline, firstline, lastline;
char filename[128], str[24];
char file[100][204];