0
A
回答
6
由於%s
格式說明告訴printf
該參數是一個空終止字符串。您給printf
一個字符 - argv
數組第二個元素中的第四個字符。
如果你想打印從第四個字符的字符串末尾的子串,你可以做到這一點,你只需要得到一個指向該角色:
printf("%s\n", &argv[1][3]);
,或者,如果你喜歡:
printf("%s\n", argv[1] + 3);
2
「%s」表示一個foramt字符串需要一個「字符*」的說法,但你傳遞一個「字符」等你拿垃圾(可能是崩潰)。格式化字符串中的「%c」需要一個'char'參數,這就是你所給的,所以它的工作原理。
+0
不太可能發生崩潰而不是編譯器錯誤。 GCC(至少)可以對格式化字符串函數進行類型檢查,比如'printf'和'scanf'。 – 2010-02-17 21:41:44
相關問題
- 1. C:命令行參數與字符串
- 2. 從多個命令行參數中打印較少的字符串
- 3. curl命令在PHP打印查詢字符串參數
- 4. 從C中的命令行參數打印整數
- 5. 命令行參數,打印列和行
- 6. 從MPI中的命令行參數讀取字符串c
- 7. 如何從C中的命令行參數讀取「字符串」?
- 8. 解析命令行參數字符串
- 9. 用argparse打印命令行參數?
- 10. 打印第二個命令行參數
- 11. 在C中比較字符串文字命令行參數
- 12. 通過命令行字符串循環打印輸出字
- 13. 從命令行打印xhtml?
- 14. 讀字符串作爲命令行參數C++
- 15. 如何比較C中的字符串命令行參數?
- 16. 將命令行參數轉換爲字符串C
- 17. 用java打印數字的命令行參數
- 18. 使用shell命令從URL字符串打印值
- 19. C++程序將不會打印命令行參數
- 20. C++字符串在多行上打印
- 21. C#打印字符串
- 22. MIPS:從命令行參數中讀取字符串
- 23. Java從命令行參數格式化字符串
- 24. 子字符串命令kshell
- 25. C通用打印數組函數 - 打印字符串數組
- 26. Python的命令行參數 - 希望打印錯誤,無參數
- 27. 從參數的C#運行命令行?
- 28. C++命令行字符串像Java?
- 29. C打印一個字符串數組
- 30. 打印字符串數組元素C++
但它是一個空終止的字符串,我只是希望它從偏移量3開始,並保持打印直到空。 那麼我將如何實現同樣的目標呢? – Fred 2009-12-06 07:04:22
謝謝,我剛剛看到你添加了一些信息給你的評論。 – Fred 2009-12-06 07:05:39