zoukankan      html  css  js  c++  java
  • C++ 字符串相互转换 适合 lua project

    #include <iostream>
    #include <Windows.h>
    #include <assert.h>
    #define Main main
    
    
    void wchar2char(char *Buf,const wchar_t* wchar)
    {
        int len = WideCharToMultiByte(CP_ACP, 0, wchar, wcslen(wchar), NULL, 0, NULL, NULL);
        WideCharToMultiByte(CP_ACP, 0, wchar, wcslen(wchar), Buf, len, NULL, NULL);
    }
    //————————————————
    //版权声明:本文为CSDN博主「bailang_zhizun」的原创文章,遵循CC 4.0 by - sa版权协议,转载请附上原文出处链接及本声明。
    //原文链接:https ://blog.csdn.net/bailang_zhizun/article/details/80348282
    wchar_t * char2wchar(const char* cchar)
    {
        wchar_t *m_wchar;
        int len = MultiByteToWideChar(CP_ACP, 0, cchar, strlen(cchar), NULL, 0);
        m_wchar = new wchar_t[len + 1];
        MultiByteToWideChar(CP_ACP, 0, cchar, strlen(cchar), m_wchar, len);
        m_wchar[len] = '';
        return m_wchar;
    }
    void UTF82WCS(char *buf,const char* szU8)
    {
        //预转换,得到所需空间的大小;
        int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
    
        //分配空间要给''留个空间,MultiByteToWideChar不会给''空间
        wchar_t wszString[1024] = { 0 };
    
        //转换
        ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);
    
        //最后加上''
        wszString[wcsLen] = '';
    
        wchar2char(buf, wszString);
    }
    //————————————————
    //版权声明:本文为CSDN博主「游学四方」的原创文章,遵循CC 4.0 by - sa版权协议,转载请附上原文出处链接及本声明。
    //原文链接:https ://blog.csdn.net/blackbattery/article/details/78244178
    char* UnicodeToUtf8(const wchar_t* unicode)
    {
        int len;
        len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL);
        char *szUtf8 = new char[90];
        memset(szUtf8, 0, len + 1);
        WideCharToMultiByte(CP_UTF8, 0, unicode, -1, szUtf8, len, NULL, NULL);
        return szUtf8;
    }
    
    int Main(int Argc,char **Argv)
    {
        if (Argc == 1)
        {
            assert(false);
        }
        char buf[1024] = { 0 };
        char Buf[1024] = { 0 };
    
        for (int i = 0; i < Argc - 1; i++)
        {
            UTF82WCS(Buf, Argv[i + 1]);
            strcat_s(buf, Buf);
            strcat_s(buf, "
    ");
        }
        printf(buf);
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    python生成器和使用gevent操作协程
    python飞机大战
    python控制鼠标键盘+监听键盘
    python生成彩色二维码
    springboot+springcloud+maven相关父子项目创建
    c++求最大公约数
    java8 LocalDateTime
    nginx 代理wss
    vue 全局使用axios
    Vue3.0核心源码解读| 组件渲染:vnode 到真实 DOM 是如何转变的?
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/11780517.html
Copyright © 2011-2022 走看看