c語言壓縮字串 ARC 語言開發計畫

2021-10-13 18:13:13 字數 1645 閱讀 5208

arc只有五種原子外加兩種容器, 還有乙個巨集.

字典(dict) 就是 這種.

列表(list) 就是 [1, 2, 3] 這種, 可以裝任意型別.

整數, 小數, 字串, 特殊量, 引用量.

整數(biginteger)具有任意精度, 和 toml 的 int64, json 的 int32 不同.

小數(decimal)精度為輸入精度, 注意不是定死精度的浮點數

字串(string)分為帶轉義的標準字串和不轉義的字面量字串

特殊量(sp-value)是一些很多語言中都要用到的量, 比如 true, false, null, nan.

注意 arc 是不可以把字母作為 value 的.

這個主題裡白色表示非法, 別的主題可能會用紅色警示.

所有特殊量都是大小寫無關的.

引用量用 $ 開頭, 表示引用這個值

具體規則是全部解析完之後展開一次 $ 記錄的值, 一般用於共享版本號.

因為只展開一次, 所以也不用擔心報棧和自引用, 自引用會變成字串

模式引用 * 在路徑中只可以出現一次, 最後會展開為乙個列表.

toml 表示列表域有點糟糕, 需要寫很多遍...很蠢.

arc 做了一些改進, 用 * 表示插入鍵值對, & 表示插入值

例如上式會被解析為:

有時候使用者會想要自定義功能, 這時候就要用到巨集了

巨集用 `@` 開頭呼叫, 宿主語言中需要定義乙個 callback 函式作為 handler.

defaulthandler 建議定義為 null.

注釋可以新增一些元屬性, 用於指定解析時的一些行為

比如用 force fp32 提公升效能.

請不要在加班時使用, 產生意外後果自負...

toml語言的 vscode 外掛程式現在是我在維護, 有 bug 儘管提.

字串壓縮 C語言

某公司的一道程式設計題 好像不提公司名比較好,不然總感覺怪怪的 對輸入字串進行壓縮,輸入 aaabcccdde 輸出 3ab3c2de 即對連續出現的字元進行壓縮。如果資料結構是陣列的話,主要是要解決兩個問題,一是統計重複的字元,二是確定陣列壓縮後每個元素在陣列中所處的位置。可以用乙個指標遍歷陣列,...

C語言編寫壓縮解壓字串程式

一 壓縮函式編寫 當輸入字串時,讀取第乙個字元,然後往後面數相同的字元,並記錄相同字元個數,直到出現乙個不同的字元為止,並記錄該字元以及個數 然後記錄讀取緊接下來不同與第乙個的字元,並以此記錄後面連續是同一字元的個數,知道出現另乙個不同的為止 以此迴圈,寫入新的數列。注意數列結尾一定要有 0 如下 ...

C語言 字串

char str lnj 字串變數 l n j 0 printf str size lu n sizeof str 字元陣列 這個並不是字串,而是字元陣列 char charvalues 如何輸出字串變數,s str 陣列的名稱,陣列的名稱就是陣列的位址 s的原理,從傳入的 位址 開始逐個取出,直到...