sprintf中%S与%s区别


// 输出中文


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");   

 

你可能感兴趣的:(学习笔记)