c - 如何比较两个文件中的字符串?

标签 c arrays string file compare

我是 C 新手,对此项目的任何帮助将不胜感激。我需要有关此项目的专家建议,谁曾尝试过类似的项目?

我将使用 C 读取两个文件(包含字符串数组或仅包含最适合性能的字符串和数字)并逐行比较两个文件中的字符串(第一个文件中的第一行与第一个文件中的字符串)第二个文件中的第二行,第一个文件中的第二行和第二个文件中的第二行...)并打印它们(如果它们匹配或不匹配)。我需要找到最快的方法来完成此操作(如果需要,我还可以更改文件结构)。下面的示例文件;

File1:                            File2:

Dens1                             Dens1
Hige0                             Hige1
Alte1                             Alte0
Some1                             Some1

我正在考虑以下选项;

option1:

fopen
fgets
memcmp/strcmp/strstr
printf

option2:

open
mmap the file
search and pointer the data from mmap
close

option3:

Reading second file completely and store the content in a array. Then read from the first file and compare.

option4:
your opinion?

感谢您的宝贵时间。

最佳答案

最佳解决方案在很大程度上取决于文件的内容。如果您知道文件已排序,则可以同时逐行读取两个文件。如果您的文件可能非常大(相对于可用 RAM),则需要将整个文件读入内存的方法将不起作用。

您需要更好地定义您的问题,以获得足够的信息来决定最佳解决方案。

关于c - 如何比较两个文件中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938106/

相关文章:

php - 如何将数组添加到数组中成为二维数组?

java - 使用运算符 + 与使用字符串缓冲区进行字符串连接?

android - java.lang.String 无法转换为 java.util.HashMap 异常

c - 释放后将变量设置为 NULL

c - 2个字符串实现的最长公共(public)子串

c - 将功能分配给CPU

c - ULONG的高8位如何清零和置位

php - 从数组中删除值数组的最佳方法是什么?

python - 如何找到阈值内最长的子数组?

c++ - C/C++ strcpy 未处理的读取冲突