1樓:NoneType
deffunction
(file,/
):return"".
join
(set
(file
(function
(open
(file_name)))
2樓:luoxing123
C語言的微笑由我來守護, show you my bug:
#include
#include
#include
#include
typedef struct WordSet WordSetT;
WordSetT* set_new()
void set_insert(WordSetT* set, char* v)
void set_delete(WordSetT* set)int main(int argc, char** argv)
3樓:
有三個思路:(先假設檔案中字串按行劃分)第一種,逐個讀取字串並寫入新檔案,寫入前與已寫入的作對比strcmp,若相同就不寫;
第二種,將字串化為Hash值,寫入前與已寫入的字串的Hash值對比,若相同就不寫;
第三種,逐個讀取字串並將其轉化到同一棵節點為字元的樹上,最後遍歷樹得出所有串。
4樓:Ming
純粹的C語言太久沒用我都忘記了,我來提供乙個lua的版本,大家有空再翻譯成C語言好了:
local file, err = io.open("in.txt")
if not err then
local outfile = io.open("out.txt", "w+")
local tAllNames = {}
for line in io.lines(sFileFullName) do
if not tAllNames[line] then
tAllNames[line] = true
outfile:write(line .. "\n")
endendend真實專案用過的,臨時改了下,不要在意報錯細節。。。(逃
5樓:遊冥客
純粹的C語言太久沒用我都忘記了,搞個 C++ 的吧:
#include
#include
#include
#include
using
namespace
std;
intmain
()for
(autos:
container
)return0;}
6樓:fairlyblank
說的好像c不能調介面一樣。
Set* set = newSet();
while (fgets(buffer, sizeof(buffer), file_in) != NULL)
}// TODO: set.c
7樓:
準備排序(或者做字典)後再遍歷輸出。然而要給出最優的演算法,我們得先了解使用的場景:要處理的文字檔案有多大?
能一次性讀入記憶體做排序嗎?文字檔案中的字串有多少種類?是可列舉的嗎?
做成字典記憶體裡能存下嗎?希望演算法占用更少的記憶體還是執行得更快?最後這個問題最好能給出量化的答案。
8樓:田雅夫
純粹的C語言太久沒用我都忘記了,我也沒接觸過Haskell. 用乙個半小時學了一下Haskell的基本語法, 我來提供乙個Haskell的版本,大家有空再翻譯成C語言好了:)
module
Main
where
import
System.IO
import
Control.Monad
import
Data.List
main=do
letlist=
handle
<-openFile
"test.txt"
ReadMode
contents
<-hGetContents
handle
letsinglewords
=words
contents
letlist
=nub
singlewords
list
hClose
handle
9樓:Subray
我怎麼覺得你們說的有問題呢。
乙個檔案中重複的字串怎麼定義。如果是存在分隔符,以分隔符分隔檔案內容的結果是需要去重的集合,那麼應該先按照分隔符切割在按照其他各位巨巨的方法來。不然整個檔案就是乙個字串,這個問題是找到串S的全部不重複的子串吧…那麼應該首先生成串S的全部子串集合A,然後應用各位巨巨的做法吧。
10樓:captainwong
純粹的C語言太久沒用我都忘記了,我來提供乙個C++的版本:
#include
#include
#include
intmain
(int
argc
,char
**argv)}
std::
ofstream
out(
"C:/a.txt"
);for
(auto
line
:set
)out
.close
();}
呼,還真是麻煩。。。
11樓:
hash表,讀到新的hash值存新的字串,對應hash值就置1,檔案太大想辦法拆一下即可。
但是這樣字串的hash值可能會重複,這個時候可以給收集到的字串做個trie樹,重複字串通過trie樹驗證一下。
12樓:丁俊堯
純粹的C語言太久沒用我都忘記了,我來提供乙個半人工的版本,大家有空再翻譯成C語言好了:
1.用文字編輯器開啟該文件。
2.令i=1,j=0。
3.若第i個字串存在,進入下面的迴圈。
4.搜尋文件中第i個字串,令搜尋結果數為j。
6.i=i+1。(迴圈結束,返回第3步)
7.儲存檔案,退出文字編輯器。
13樓:Skiiii
純粹的C語言太久沒用,我其實還記得。
先用C語言實現乙個SHELL,要符合POSIX的那種然後 cat file.txt | sort | uniq即可。
14樓:在雲端
純粹的C語言太久沒用我都忘記了,我來提供乙個python的版本,大家有空再翻譯成C語言好了:
file
=open
("test"
)ans
=list
(set(re
.split(r
"[^\w]+"
,file
.read
())))(逃
C語言fread函式怎麼把檔案資訊讀入結構體變數中?
shzy 編譯器說燙啊,還不趕緊澆點水 滑稽 想法很好,但是字串處理很麻煩,txt檔案預設是ansi,在中文作業系統上也就是gb2312,也就是和utf 8一樣是相容ascii碼的,這還算比較好的。你想一次全部讀到結構體陣列中,可是檔案裡你看不見的符號有很多,tab,換行符 n,空格等等。得考慮很多...
為什麼C 標頭檔案喜歡把乙個型別通過typedef定義出無數個新名字,這有什麼意義嗎?
習慣和風格問題。比如,在同時引用多個第三方庫,當它的命名空間相似,函式名 引數列表完全相同時,你還可以通過自定義的型別名來感知這個介面是幹什麼的。 exiledkingcc 歷史遺留問題。比如一開始沒有uint8 t這樣的型別,就只能用typedef了。其它的情況也類似,需要由名字直接表達其意義,就...
C或者C 怎麼監控乙個,檔案改變了(比如txt)?
題主的問題 C或者C 怎麼監控乙個,檔案改變了 比如txt C或者C 怎麼監控乙個檔案改變了 比如txt 意思是 比如C語言執行到某一行,停止了,只有當txt檔案改變了 另外乙個程式向裡面新增了內容 它才讀取txt,然後執行下去。題外題 怎麼暫停程式,等待變化後,讀入資料呢?忘了說明了,Window...