欤夤 发表于 5 天前

静态库封装之ComStr类

ComStr.h

/*
@author:EricsT
@data:20241008
@version:V1.5
@history:
        @author @data @version @content
        EricsT 20241008 V1.0 新增ComStr类
        EricsT 20241009 V1.1 新增string部分
        EricsT 20241010 V1.2 新增string to num部分
        EricsT 20241011 V1.3 新增string to num部分
        EricsT 20241018 V1.4 修改string部分[新增 string case operation]
        EricsT 20241024 V1.5 修改部分函数说明注释
*/

#pragma once

#include <string>
#include <vector>
using namespace std;

class ComStr
{
public:

        //CString
        //=============================================================================================================

        /*
        func:CString 转换为 string
        @cs:待转换的CString
        ret:转换后的string
        */
        static string CStringToString(CString cs);//20241008

        /*
        func:CString 转换为 char[]
        @cs:待转换的CString
        @ptrch:转换后的char[]
        ret:成功true,失败false
        */
        static bool CStringTopchar(CString cs, char* ptrch);//20241008

        /*
        func:CString 转换为 PCHAR
        @cs:待转换的CString
        @pch:转换后的PCHAR
        ret:成功true,失败false
        */
        static bool CStringToPCHAR(CString cs, PCHAR pch);//20241008

        /*
        func:string 转换为 CString
        @str:待转换的string
        ret:转换后的CString
        */
        static CString stringToCString(string str);//20241008

        /*
        func:char[] 转换为 CString
        @ptrch:待转换的char[]
        ret:转换后的CString
        */
        static CString pcharToCString(const char* ptrch);//20241008

        /*
        func:PCHAR 转换为 CString
        @pch:待转换的PCHAR
        ret:转换后的CString
        */
        static CString PCHARToCString(PCHAR pch);//20241008



        //string
        //=============================================================================================================

        /*
        func:字符串分割
        @str:待分割的字符串
        @ch:分割字符
        ret:分割完成的字符串容器
        */
        static vector<string> stringSplit(string str, char ch);//20241009

        /*
        func:字符串替换指定字符串
        @str:待替换的的字符串
        @strOld:需要被替换的字符串
        @strNew:指定的字符串
        ret:替换完成的字符串
        */
        static string stringReplace(string str, string strOld, string strNew);//20241009

        /*
        func:字符串转换为大写
        @str:待转换的的字符串
        ret:转换完成的字符串
        */
        static string stringToUpper(string str);//20241018

        /*
        func:字符串转换为小写
        @str:待转换的的字符串
        ret:转换完成的字符串
        */
        static string stringToLower(string str);//20241018



        //string to num
        //=============================================================================================================

        /*
        func:按照指定基数将字符串转换为unsigned char型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static unsigned char stringToUChar(string str, int iBase);//20241010

        /*
        func:按照十进制将字符串转换为unsigned char型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned char stringToUCharDec(string str);//20241010

        /*
        func:按照十六进制将字符串转换为unsigned char型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned char stringToUCharHex(string str);//20241010

        /*
        func:按照指定基数将字符串转换为unsigned short型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static unsigned short stringToUShort(string str, int iBase);//20241010

        /*
        func:按照十进制将字符串转换为unsigned short型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned short stringToUShortDec(string str);//20241010

        /*
        func:按照十六进制将字符串转换为unsigned short型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned short stringToUShortHex(string str);//20241010

        /*
        func:按照指定基数将字符串转换为unsigned int型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static unsigned int stringToUInt(string str, int iBase);//20241010

        /*
        func:按照十进制将字符串转换为unsigned int型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned int stringToUIntDec(string str);//20241010

        /*
        func:按照十六进制将字符串转换为unsigned int型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned int stringToUIntHex(string str);//20241010

        /*
        func:按照指定基数将字符串转换为unsigned long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static unsigned long stringToULong(string str, int iBase);//20241010

        /*
        func:按照十进制将字符串转换为unsigned long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned long stringToULongDec(string str);//20241010

        /*
        func:按照十六进制将字符串转换为unsigned long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned long stringToULongHex(string str);//20241010

        /*
        func:按照指定基数将字符串转换为unsigned long long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static unsigned long long stringToULongLong(string str, int iBase);//20241010

        /*
        func:按照十进制将字符串转换为unsigned long long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned long long stringToULongLongDec(string str);//20241010

        /*
        func:按照十六进制将字符串转换为unsigned long long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static unsigned long long stringToULongLongHex(string str);//20241010



        //string to num
        //=============================================================================================================

        /*
        func:按照指定基数将字符串转换为char型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static char stringToChar(string str, int iBase);//20241011

        /*
        func:按照十进制将字符串转换为char型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static char stringToCharDec(string str);//20241011

        /*
        func:按照十六进制将字符串转换为char型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static char stringToCharHex(string str);//20241011

        /*
        func:按照指定基数将字符串转换为short型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static short stringToShort(string str, int iBase);//20241011

        /*
        func:按照十进制将字符串转换为short型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static short stringToShortDec(string str);//20241011

        /*
        func:按照十六进制将字符串转换为short型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static short stringToShortHex(string str);//20241011

        /*
        func:按照指定基数将字符串转换为int型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static int stringToInt(string str, int iBase);//20241011

        /*
        func:按照十进制将字符串转换为int型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static int stringToIntDec(string str);//20241011

        /*
        func:按照十六进制将字符串转换为int型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static int stringToIntHex(string str);//20241011

        /*
        func:按照指定基数将字符串转换为long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static long stringToLong(string str, int iBase);//20241011

        /*
        func:按照十进制将字符串转换为long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static long stringToLongDec(string str);//20241011

        /*
        func:按照十六进制将字符串转换为long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static long stringToLongHex(string str);//20241011

        /*
        func:按照指定基数将字符串转换为long long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        @iBase:基数
        ret:转换后的数字
        */
        static long long stringToLongLong(string str, int iBase);//20241011

        /*
        func:按照十进制将字符串转换为long long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static long long stringToLongLongDec(string str);//20241011

        /*
        func:按照十六进制将字符串转换为long long型整数[不检查合法性,默认为字符串合法]
        @str:待转换的字符串
        ret:转换后的数字
        */
        static long long stringToLongLongHex(string str);//20241011
};ComStr.cpp

/*@author:EricsT@data:20241008@version:V1.5*/#include "stdafx.h"#include "ComStr.h"string ComStr::CStringToString(CString cs){        int len = cs.GetLength();        PCHAR pch = new char;        size_t pchSize = wcstombs(pch, cs, len + 1);        if (pchSize == wstring::npos)        {                delete pch;                return "";        }        string str(pch);        delete pch;        return str;}bool ComStr::CStringTopchar(CString cs, char * ptrch){        int len = cs.GetLength();        PCHAR pch = new char;        size_t pchSize = wcstombs(pch, cs, len + 1);        if (pchSize == wstring::npos)        {                delete pch;                return false;        }        string str(pch);        delete pch;        memccpy(ptrch, str.c_str(), sizeof(char), str.size());        ptrch = 0;        return true;}bool ComStr::CStringToPCHAR(CString cs, PCHAR pch){        int len = cs.GetLength();        PCHAR pch_ = new char;        size_t pchSize = wcstombs(pch_, cs, len + 1);        if (pchSize == wstring::npos)        {                delete pch_;                return false;        }        string str(pch_);        delete pch_;        memccpy(pch, str.c_str(), sizeof(char), str.size());        pch = 0;        return true;}CString ComStr::stringToCString(string str){        return CString(str.c_str());}CString ComStr::pcharToCString(const char* pch){        return CString(pch);}CString ComStr::PCHARToCString(PCHAR pch){        return CString(pch);}vector ComStr::stringSplit(string str, char ch){        vector StrVec;        while (true)        {                int iPos = str.find_first_of(ch);                if (str.npos == iPos)                {                        StrVec.push_back(str);                        break;                }                StrVec.push_back(str.substr(0, iPos));                str = str.substr(iPos + 1);        }        return StrVec;}string ComStr::stringReplace(string str, string strOld, string strNew){        size_t iPos = str.find(strOld, 0);        while (str.npos != iPos)        {                str.replace(iPos, strOld.length(), strNew);                iPos += strNew.length();                iPos = str.find(strOld, iPos);        }        return str;}string ComStr::stringToUpper(string str){        for (int i = 0; i < str.size(); i++)        {                if (str >= 'a' && str = 'A' && str
页: [1]
查看完整版本: 静态库封装之ComStr类