自我複製機(C語言實現版)

2021-10-05 00:12:48 字數 1014 閱讀 8977

剛看了北大劉田老師講的遞迴定理,忍不住好奇心,用c語言實現了他講的自我複製機。

其中為了模擬圖靈機的可改變的輸入帶,我用了sprintf函式,使用字元陣列input來暫時儲存帶上的內容,方便改變。

這裡,轉義字元是乙個大坑,所以我用deal字元陣列,來解決轉義字元的問題。實際上input和deal陣列裡儲存的內容是相同的,只是由於轉義字元,兩者要進行乙個轉換,具體見transfer函式。

最終列印出來的,即c原始碼自身。

#include

char input[

100000];

char deal[

100000];

void

transfer()

else

if(input[i]

=='\"'

)else

if(input[i]

=='\\'

)else

if(input[i]

=='%'

)else

i++;}}

voida(

)else if(input[i]=='\\\\\\\"')else if(input[i]=='\\\\\\\\')else if(input[i]=='%%%%')elsei++;}}\\n\");a();transfer();printf(\"void a()\\n\",deal);printf(\"%%s\",input);return 0;}");

}int

main()

else if(input[i]=='\\\"')else if(input[i]=='\\\\')else if(input[i]=='%%')elsei++;}}\n");

a();

transfer()

;printf

("void a()\n"

,deal)

;printf

("%s"

,input)

;return0;

}

C語言實現檔案複製

使用c語言來複製乙個檔案 包括各種型別 主流的做法有2種 1.自定義函式 2.呼叫系統api 本文介紹自定義函式的方法。檔案型別可以粗略分類為ascii型別和二進位制型別,且大多數為二進位制型別,因此本文採用 fread 和 fwrite 閒話不多說,上 c語言實現檔案複製 srcfile 原始檔 ...

C語言實現批量複製檔案

假設你拿到乙個資料集,裡面包含很多的資料夾,每個資料夾下都有你想要複製的檔案。包括文字檔案和二進位制檔案 程式思路分為三步 1.製作乙份.txt檔案,每一行存放要複製檔案的路徑 2.製作乙份.txt檔案,每一行存放複製後檔案儲存的路徑 3.利用檔案複製函式進行複製 利用bat批處理命令 dir b ...

C語言實現簡易版掃雷

minesweeping define crt secure no warnings 1 ifndef game h define game h include include include include define row 10 define col 10 define rows row 2...