格式化字串中的大S和小s

2021-09-30 02:50:49 字數 1778 閱讀 3536

// 輸出中文

char sza[8];

wchar szw[8];

sprintf(sza, "%s", l"和平");    // 亂碼,四個位元組

sprintf(sza, "%s", "和平");     // 和平

sprintf(sza, "%s", l"和平");    // 零位元組

sprintf(sza, "%s", "和平");     // 零位元組

swprintf(szw, l"%s", l"和平");    // 和平,四個位元組

swprintf(szw, l"%s", "和平");    // 無法輸出,四個位元組,內容是ansi碼

swprintf(szw, l"%s", l"和平");    // 無法輸出,八個位元組,內容是unicode碼

swprintf(szw, l"%s", "和平");    // 無法輸出,八個位元組,內容是ansi碼

wsprintfa(sza, "%s", l"和平");    // 亂碼,四個位元組

wsprintfa(sza, "%s", "和平");    // 和平

wsprintfa(sza, "%s", l"和平");    // 和平

wsprintfa(sza, "%s", "和平");    // 亂碼,兩個位元組

wsprintfw(szw, l"%s", l"和平");    // 和平,四個位元組

wsprintfw(szw, l"%s", "和平");    // 無法輸出,四個位元組,內容是ansi碼

wsprintfw(szw, l"%s", l"和平");    // 無法輸出,六個位元組,內容是unicode碼

wsprintfw(szw, l"%s", "和平");    // 和平,八個位元組

// 輸出英文

char sza[8];

wchar szw[8];

sprintf(sza, "%s", l"well");    // w,乙個位元組

sprintf(sza, "%s", "well");     // well,四個位元組

sprintf(sza, "%s", l"well");    // well,四個位元組

sprintf(sza, "%s", "well");     // 零位元組

swprintf(szw, l"%s", l"well");    // well,八個位元組

swprintf(szw, l"%s", "well");    // 亂碼,四個位元組

swprintf(szw, l"%s", l"well");    // w,兩個位元組

swprintf(szw, l"%s", "well");    // well,八個位元組

wsprintfa(sza, "%s", l"well");    // w,乙個位元組

wsprintfa(sza, "%s", "well");    // well,四個位元組

wsprintfa(sza, "%s", l"well");    // well,四個位元組

wsprintfa(sza, "%s", "well");    // 亂碼,四個位元組

wsprintfw(szw, l"%s", l"well");    // well,八個位元組

wsprintfw(szw, l"%s", "well");    // 亂碼,四個位元組,內容是ansi碼

wsprintfw(szw, l"%s", l"well");    // w,兩個位元組

wsprintfw(szw, l"%s", "well");    // well,八個位元組

格式化輸出 s和 S的區別

使用s時,printf是針對單位元組字元的字串,而wprintf是針對寬字元的 使用s時,正好相反,printf針對寬字元 cstring中的format與printf類似,在unicode字符集的工程中,使用 cstring str1,str2 str1.format t s str2 時 s專指...

格式化輸出 s和 S的區別

使用s時,printf是針對單位元組字元的字串,而wprintf是針對寬字元的 使用s時,正好相反,printf針對寬字元 cstring中的format與printf類似,在unicode字符集的工程中,使用 cstring str1,str2 str1.format t s str2 時 s專指...

格式化字串小實驗

在 裡看到格式化字串攻擊的說明,不是很理解,決定實踐一下,結合tim newsham的format string attacks 進行實驗。這裡只測試了一下 x和 n引數,更多種類的格式化字串攻擊請查閱其他資料。至於測試的環境,應當是c編譯環境都可以,但是在實驗過程中,我發現dev c 預設不對 n...