基本上,我無法弄清楚這一點,我希望我的C程序存儲批處理程序的整個明文,然後插入一個文件,然後運行。C程序存儲字符串中的特殊字符
我完成了我的程序,但拿着內容是我的問題。如何在字符串中插入代碼並使其忽略所有特殊字符,如%s \ etc?
基本上,我無法弄清楚這一點,我希望我的C程序存儲批處理程序的整個明文,然後插入一個文件,然後運行。C程序存儲字符串中的特殊字符
我完成了我的程序,但拿着內容是我的問題。如何在字符串中插入代碼並使其忽略所有特殊字符,如%s \ etc?
您必須使用\轉義特殊字符,您可以使用另一個反斜槓(即\\
)轉義反斜槓本身。
有太多的字符手動去做。 – MuchMemezMuchWow
@MuchMemezMuchWow你不必手動完成 - 你可以編寫另一個程序來完成它。 – ace
正如伊恩先前提到的那樣,您可以轉義不允許在正常C字符串中使用的字符\
;例如,換行符變爲\n
,雙引號變爲\"
,反斜槓變爲\\
。
如果無論出於何種原因無法或不願意這樣做,那麼如果您的解決方案必須使用C語言,那麼您可能會不幸運。但是,如果您願意切換到C++,那麼您可以使用raw strings:
const char* s1 = R"foo(
Hello
World
)foo";
這相當於
const char* s2 = "\nHello\nWorld\n";
原始字符串必須以R"
隨後通過任意的分界符(由任何來源字符,但括號,反斜線和間隔的開始可以是空的;最多16個字符),然後(
,並且必須以)
後跟分隔符和"
結束。必須選擇分隔符,使得終止子字符串()
,分隔符"
)不會出現在字符串中。
咦?你爲什麼不提供一個你想要做的事情的簡單例子,以及你寫的代碼,以及爲什麼代碼不能滿足你的需求的解釋。 – mah
嗨,你能否請[編輯你的問題](http://stackoverflow.com/posts/29658418/edit),以便它[包括代碼](http://stackoverflow.com/help/mcve),以便我們可以看到你在說什麼? – GoBusto
在聲明字符串中的任何字符時,如'echo C:\\ myfile.txt'和'%'字符,您需要將\字符加倍。 –