我有很奇怪的問題。我在LoadRunner中進行性能測試,並注意到在某些地址中我有奇怪的編碼字符。編碼URL字符
我寫了一個測試程序,這是代碼:
char bla[256]="test %3A test %2B";
printf(bla);
輸出有沒有意義。它看起來像這樣:
測試0X0.000000P + 0檢驗B
這到底是怎麼回事?
我有很奇怪的問題。我在LoadRunner中進行性能測試,並注意到在某些地址中我有奇怪的編碼字符。編碼URL字符
我寫了一個測試程序,這是代碼:
char bla[256]="test %3A test %2B";
printf(bla);
輸出有沒有意義。它看起來像這樣:
測試0X0.000000P + 0檢驗B
這到底是怎麼回事?
我認爲,這裏的問題是由喜歡在陣列中%3A
和%2B
的%
-ed元素的存在造成的,你傳遞,爲printf()
作爲唯一的參數,如果沒有一個格式說明字符串。
當您將一個字符串直接傳遞給printf()
(作爲printf()
的第一個參數)時,它會將這些字符串解釋爲格式說明符,並期望爲此提供參數。但是,使用
%2B
和你可以試着改變你print語句
printf("%s\n", bla);
使printf()
明白,那些%
s不攜帶任何特殊的含義,它們只是被打印。
感謝您的幫助!我幾年來一直沒有用C語言編程,現在看起來幾乎完全不同的C#和JS:P –
@PawełReszka不用多說,不用擔心。 :-) –
http://stackoverflow.com/questions/1860159/how-to-escape-the-sign-in-cs-printf –