我們有一個像 - printf(「Hello World」); printf在給定字符串中的'd'之後追加空字符嗎?是否printf終止每個字符串與空字符?
-1
A
回答
0
當一個字符串被定義爲例如「hello world」默認爲空終止。 printf沒有做任何與null終止相關的工作,期望它自己的打印處理。它只接受char *作爲輸入。在你的例子中,「Hello World」是臨時字符串,在傳遞給printf之前已經終止了null。如果傳遞的字符串不是空的,那麼行爲是未定義的。
3
當你寫
printf("xyz");
你實際上是通過由三個字符的字符串和空終止於printf
。
printf("xyz");
// is equivalent to
static const char xyz[] = { 'x', 'y', 'z', 0 };
printf(xyz);
這兩個printf
都具有相同的效果:它們將字符x,y和z寫入控制檯。空終止符不被寫入。
1
試試這個:
#include <stdio.h>
int main()
{
char string0[] = {'a', 'b', 'c'};
char string1[] = {'a', 'b', 'c','\0'};
printf("%s", string0);
puts("");
printf("%s", string1);
return 0;
}
如果你足夠幸運的話,你會看到類似這樣的:
abc$#r4%&^3
abc
printf()
一個'\0'
不追加到字符串。它不會更改要輸出的字符串,因爲它的任務是「打印」而不是「修改」。 相反,空字符告訴printf()
字符串的末尾在哪裏。
相關問題
- 1. SQL字符串空終止?
- 2. 空終止字符串
- 3. C字符串空終止
- 4. 如何使用printf打印非空終止的字符串?
- 5. 將一個以空字符結尾的字符串與一個非空終止的字符串進行比較
- 6. 終止字符串
- 7. 字符串和字符與printf的
- 8. 儘管字符串有空終止字符,std :: string的長度是否一致?
- 9. C:字符串Concatenation:空終止字符串
- 10. 如何知道字符串是否爲空終止
- 11. Re2是否使用字符串大小或空終止?
- 12. C字符串的空終止
- 13. wcscat_s字符串不爲空終止
- 14. JavaScript WebSocket非空終止的字符串
- 15. 雙空終止的字符串
- 16. C:Eclipse/gdb和空終止字符串
- 17. Android JSON字符未終止字符串
- 18. Org.json.JSONException:字符未終止字符串
- 19. HTMLInputHidden空終止字符
- 20. 終止unicode空字符
- 21. C字符串空終止字符\ 0修改
- 22. C字符串有隨機尾隨字符,空終止問題?
- 23. Applescript:檢查一個字符串是否包含空字符串?
- 24. IOS:驗證一個字符串是否爲空字符串
- 25. C# - 從第一個空終止符開始修剪字符串
- 26. Byte'\ x09'終止字符串?
- 27. 終止C++字符串
- 28. 替代字符串終止
- 29. 範圍終止字符串
- 30. Perl NULL終止字符串
不,在任何情況下'printf'都沒有這樣做。 – ameyCU