C语言实现读取1.txt文本内容,删除重复的字符串内容
时间: 2024-02-27 07:58:44 浏览: 187
以下是使用C语言实现读取`1.txt`文件内容并删除重复的字符串内容的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 256
int main() {
FILE *fp;
char line[MAX_LINE_LENGTH];
char unique_lines[MAX_LINE_LENGTH][MAX_LINE_LENGTH];
int i, j, k;
int is_duplicate;
// 打开文件
fp = fopen("1.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
exit(EXIT_FAILURE);
}
// 读取文件内容
i = 0;
while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) {
// 检查当前行是否已经存在于去重数组中
is_duplicate = 0;
for (j = 0; j < i; j++) {
if (strcmp(line, unique_lines[j]) == 0) {
is_duplicate = 1;
break;
}
}
// 如果当前行不是重复的,则添加到去重数组中
if (!is_duplicate) {
strcpy(unique_lines[i], line);
i++;
}
}
// 关闭文件
fclose(fp);
// 将去重后的内容写回文件
fp = fopen("1.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
exit(EXIT_FAILURE);
}
for (j = 0; j < i; j++) {
fprintf(fp, "%s", unique_lines[j]);
}
fclose(fp);
return 0;
}
```
以上代码首先使用`fopen()`函数打开`1.txt`文件,并通过`fgets()`函数逐行读取文件内容到`line`数组中。接着,检查当前行是否已经存在于去重数组`unique_lines`中。如果当前行不是重复的,则将其添加到去重数组中。最后,将去重后的内容使用`fprintf()`函数写回到`1.txt`文件中。
需要注意的是,此代码会将原始文件中的内容覆盖为去重后的内容。如果您需要保留原始文件,可以将输出文件名更改为另一个文件名。
阅读全文