gpt4 book ai didi

c - 用 C(或只是算法)编写程序来搜索和替换文件中的字符的有效方法是什么?

转载 作者:行者123 更新时间:2023-11-30 16:02:51 25 4
gpt4 key购买 nike

用户将在运行时提供2个字符串,例如“asdf”“qwer”,现在,每个出现的“a”都应替换为“q”,“s”替换为“w”,“d”替换为“e”,“f”替换为“r”字符串的长度可能会有所不同。现在的重点是要操作的文件很大,3-4 TB,所以我们需要一个效率为“n”或“n(log(n))”的高效程序,一系列 if...else不会有帮助。给出的提示是:1.>文件中没有特殊字符或空格。它仅由小写字符组成2.>程序应该利用文件中只有 26 个字符的事实。3.>最后,解决方案是使用字符的ascii值来完成的。

其他详细信息文件应该是关于一个人的论文,所以它不是一个序列。是的,我们必须按顺序读取整个文件,唯一不应该做的就是对每个字符进行比较,即 if(a)then(q)elseif(s)then(w)....something...效率更高???

请帮忙

最佳答案

在程序开头创建一个包含 26 个字符的数组。然后替换这个数组中你想要的那些。然后解析整个文件,用表值替换每个字符。

char charsToReplace = "asdf";
char replaceBy = "qwer";
charsToReplaceCount = 4;

char replaceTable[26] = {'a', 'b', 'c', ... , 'z'}

for (int i=0; i<charsToReplaceCount; ++i)
{
replaceTable[charsToReplace[i] - 'a'] = replaceBy[i];
}

...

for (int i=0; i<fileLengthChunk; ++i)
{
file[i] = replaceTable[file[i] - 'a'];
}

由于文件很大,我跳过了文件的读写以及分块。

关于c - 用 C(或只是算法)编写程序来搜索和替换文件中的字符的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4747727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com