我有串char * buff
,並希望其susbtring工作(從buff + x
直到buff + y
。 我必須複製此蜇到其他變量?還是僅僅是有沒有更好的辦法去實現它? 現在我希望這個子寫入文件與子工作
Q
與子工作
0
A
回答
3
沒有,只是做了直接寫,就像你希望:
fwrite(buff + x, y - x + 1, 1, my_file);
以上的方式呈現閉區間,如果你說的是半開的,你需要刪除+ 1
。例如,用const char *buff = "hello, world";
以上將寫"world"
如果x = 7
和y = 12
。
寫入操作將從緩衝區的「切片」完成,因爲這就是對fwrite()
所說的全部內容。它不知道它收到的數據當然是更大的一部分。
作爲註釋中的指針,上面將切片視爲二進制數據,如果它真的是一個字符串,那麼它可能是不好的。在那種情況下,爲了能夠使用例如fprintf()
與%s
,你應該使用動態格式字符串(你需要%.Ns
其中N爲y - x + 1
):
static int substring_print(const char *s, size_t start, size_t end)
{
char fmt[16];
snprintf(fmt, sizeof fmt, "%%.%us", end - start + 1);
fprintf(stdout, fmt, s + start);
}
+0
當然,這假設二進制輸出是足夠好的(不需要換行符解釋)。 –
相關問題
- 1. 與SELECT子句不工作
- 2. 原子能與Python工作virtualenvwrapper
- 3. LEFT JOIN與where子句不工作
- 4. cronjob與電子郵件不工作
- 5. 重寫.htaccess代碼工作與子域
- 6. make date_create()與DateTime子類一起工作
- 7. 離子3 Plunker與SCSS不工作
- 8. 與WHERE子句中不工作
- 9. 創建用戶與離子不工作
- 10. SQLite與where子句不工作
- 11. 離子2與strophe不工作?
- 12. 與離子本地3.X不工作
- 13. firebase登錄與離子不工作
- 14. htaccess的與子目錄不工作
- 15. INNER JOIN與WHERE子句中不工作
- 16. 與罐子火花工作流程
- 17. 與工作表工作
- 18. Oozie:子工作流操作:如何檢索子工作流ID?
- 19. UI-SREF不與子狀態的工作從離子態
- 20. 離子鏈接並不與離子V2工作
- 21. Jsoup選擇與組合子直系子孫(>)不工作
- 22. 計數與SQL子查詢中從子句不工作
- 23. iOS:如何使工廠方法與子類化工作
- 24. 工作差[{}]與
- 25. 與不工作
- 26. 與bc工作
- 27. 工作與JavaScript
- 28. 與不工作
- 29. 與不工作
- 30. 與位工作
這取決於什麼「工作」的手段,並在那裏將afterthat使用。如果您只是閱讀它,則無需複製。 – Deck
我想寫這個子字符串到一個文件。 – MaMu
如果使用'fwrite'編寫足夠好,那麼它是可行的。否則,您可能需要複製(或暫時將'buff [y]'設置爲NUL)。 –