Windows核心編程:第2章 字符和字符串處理

Github

https://github.com/gongluck/Windows-Core-Program.gitc++

//第2章 字符和字符串處理.cpp: 定義應用程序的入口點。
//

#include "stdafx.h"
#include "第2章 字符和字符串處理.h"

#include "StrSafe.h"

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
    _In_opt_ HINSTANCE hPrevInstance,
    _In_ LPWSTR    lpCmdLine,
    _In_ int       nCmdShow)
{
    TCHAR str[] = TEXT("第2章 字符和字符串處理");
    size_t len = _tcslen(str);

    TCHAR str2[5] = { 0 };
    //errno_t eno = _tcscpy_s(str2, _countof(str2), str);//緩衝區太小程序會終止

    PTCHAR pend = nullptr;//字符串結尾指針
    size_t left = 0;//目標緩衝區剩餘(加上字符串結尾,因此>=1)
    //截斷拷貝
    HRESULT hres = StringCchCatEx(str2, _countof(str2), str, &pend, &left, STRSAFE_FILL_BEHIND_NULL);

    //字符串(碼位)比較
    //0-調用失敗,
    //CSTR_LESS_THAN            1           // string 1 less than string 2
    //CSTR_EQUAL                2           // string 1 equal to string 2
    //CSTR_GREATER_THAN         3           // string 1 greater than string 2
    int ires = CompareStringOrdinal(str, _countof(str), str2, _countof(str2), FALSE);

    //字符串轉換
    //https://github.com/gongluck/Tools/tree/master/TransCode
    char ansic[] = "第2章 字符和字符串處理";
    int ilen = MultiByteToWideChar(CP_ACP, 0, ansic, -1, NULL, 0);
    wchar_t* unicode = new wchar_t[ilen];
    MultiByteToWideChar(CP_ACP, 0, ansic, -1, unicode, ilen);//我以爲書中對最後一個參數的解釋錯了,應該是「字符數」。
    delete[] unicode;

    system("pause");
    return 0;
}
相關文章
相關標籤/搜索