• C++ 常见字符处理 收录


    1.string字符串删除 字符串中 指定字符

    std::string& HTTPRequestHandlerImpl::replace_all_distinct(std::string& str, const std::string& old_value, const std::string& new_value)
            {
                for (string::size_type pos(0); pos != string::npos; pos += new_value.length())
                {
                    if ((pos = str.find(old_value, pos)) != string::npos)
                    {
                        str.replace(pos, old_value.length(), new_value);
                    }
                    else  { break; }
                }
                return   str;
            }
    
    eg:  replace_all_distinct(strring("abcde"), "cd", "dc");
    
    res: abdce

    2.string 字符串 转换 utf-8编码

    std::string string_To_UTF8(const std::string & str)  
    {  
    int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0);  
     
    wchar_t * pwBuf = new wchar_t[nwLen + 1];
    ZeroMemory(pwBuf, nwLen * 2 + 2);  
     
    ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), pwBuf, nwLen);  
     
    int nLen = ::WideCharToMultiByte(CP_UTF8, 0, pwBuf, -1, NULL, NULL, NULL, NULL);  
     
    char * pBuf = new char[nLen + 1];  
    ZeroMemory(pBuf, nLen + 1);  
     
    ::WideCharToMultiByte(CP_UTF8, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);  
     
    std::string retStr(pBuf);  
     
    delete []pwBuf;  
    delete []pBuf;  
     
    pwBuf = NULL;  
    pBuf = NULL;  
     
    return retStr;  
    }  

    std::string UTF8_To_string(const std::string & str)  
    {  
    int nwLen = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);  
     
    wchar_t * pwBuf = new wchar_t[nwLen + 1];
    memset(pwBuf, 0, nwLen * 2 + 2);  
     
    MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), pwBuf, nwLen);  
     
    int nLen = WideCharToMultiByte(CP_ACP, 0, pwBuf, -1, NULL, NULL, NULL, NULL);  
     
    char * pBuf = new char[nLen + 1];  
    memset(pBuf, 0, nLen + 1);  
     
    WideCharToMultiByte(CP_ACP, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);  
     
    std::string retStr = pBuf;  
     
    delete []pBuf;  
    delete []pwBuf;  
     
    pBuf = NULL;  
    pwBuf = NULL;  
     
    return retStr;  

  • 相关阅读:
    类型化dataset分页
    cp自动创建层级结构的例子
    You have tried to change the API from what has been previously approved.
    Mysql学习笔记
    cygwin设置NDK环境变量ANDROID_NDK_ROOT
    PowerDesigner学习笔记
    Spring Cloud Commons教程(三)忽略网络接口
    Spring Cloud Commons教程(二)Spring RestTemplate作为负载平衡器客户端
    Spring Cloud Commons教程(一)普通抽象
    Spring Cloud教程(十二)加密和解密
  • 原文地址:https://www.cnblogs.com/xuandi/p/6774570.html
Copyright © 2020-2023  润新知