找回密码
 立即注册
首页 资源区 代码 静态库封装之ComStr类

静态库封装之ComStr类

欤夤 2025-6-4 19:51:09
ComStr.h
  1. /*
  2. @author:EricsT
  3. @data:20241008
  4. @version:V1.5
  5. @history:
  6.         @author @data @version @content
  7.         EricsT 20241008 V1.0 新增ComStr类[CString部分]
  8.         EricsT 20241009 V1.1 新增string部分
  9.         EricsT 20241010 V1.2 新增string to num[unsigned]部分
  10.         EricsT 20241011 V1.3 新增string to num[signed]部分
  11.         EricsT 20241018 V1.4 修改string部分[新增 string case operation]
  12.         EricsT 20241024 V1.5 修改部分函数说明注释
  13. */
  14. #pragma once
  15. #include <string>
  16. #include <vector>
  17. using namespace std;
  18. class ComStr
  19. {
  20. public:
  21.         //CString
  22.         //=============================================================================================================
  23.         /*
  24.         func:CString 转换为 string
  25.         @cs:待转换的CString
  26.         ret:转换后的string
  27.         */
  28.         static string CStringToString(CString cs);//20241008
  29.         /*
  30.         func:CString 转换为 char[]
  31.         @cs:待转换的CString
  32.         @ptrch:转换后的char[]
  33.         ret:成功true,失败false
  34.         */
  35.         static bool CStringTopchar(CString cs, char* ptrch);//20241008
  36.         /*
  37.         func:CString 转换为 PCHAR
  38.         @cs:待转换的CString
  39.         @pch:转换后的PCHAR
  40.         ret:成功true,失败false
  41.         */
  42.         static bool CStringToPCHAR(CString cs, PCHAR pch);//20241008
  43.         /*
  44.         func:string 转换为 CString
  45.         @str:待转换的string
  46.         ret:转换后的CString
  47.         */
  48.         static CString stringToCString(string str);//20241008
  49.         /*
  50.         func:char[] 转换为 CString
  51.         @ptrch:待转换的char[]
  52.         ret:转换后的CString
  53.         */
  54.         static CString pcharToCString(const char* ptrch);//20241008
  55.         /*
  56.         func:PCHAR 转换为 CString
  57.         @pch:待转换的PCHAR
  58.         ret:转换后的CString
  59.         */
  60.         static CString PCHARToCString(PCHAR pch);//20241008
  61.         //string
  62.         //=============================================================================================================
  63.         /*
  64.         func:字符串分割
  65.         @str:待分割的字符串
  66.         @ch:分割字符
  67.         ret:分割完成的字符串容器
  68.         */
  69.         static vector<string> stringSplit(string str, char ch);//20241009
  70.         /*
  71.         func:字符串替换指定字符串
  72.         @str:待替换的的字符串
  73.         @strOld:需要被替换的字符串
  74.         @strNew:指定的字符串
  75.         ret:替换完成的字符串
  76.         */
  77.         static string stringReplace(string str, string strOld, string strNew);//20241009
  78.         /*
  79.         func:字符串转换为大写
  80.         @str:待转换的的字符串
  81.         ret:转换完成的字符串
  82.         */
  83.         static string stringToUpper(string str);//20241018
  84.         /*
  85.         func:字符串转换为小写
  86.         @str:待转换的的字符串
  87.         ret:转换完成的字符串
  88.         */
  89.         static string stringToLower(string str);//20241018
  90.         //string to num [unsigned]
  91.         //=============================================================================================================
  92.         /*
  93.         func:按照指定基数将字符串转换为unsigned char型整数[不检查合法性,默认为字符串合法]
  94.         @str:待转换的字符串
  95.         @iBase:基数
  96.         ret:转换后的数字
  97.         */
  98.         static unsigned char stringToUChar(string str, int iBase);//20241010
  99.         /*
  100.         func:按照十进制将字符串转换为unsigned char型整数[不检查合法性,默认为字符串合法]
  101.         @str:待转换的字符串
  102.         ret:转换后的数字
  103.         */
  104.         static unsigned char stringToUCharDec(string str);//20241010
  105.         /*
  106.         func:按照十六进制将字符串转换为unsigned char型整数[不检查合法性,默认为字符串合法]
  107.         @str:待转换的字符串
  108.         ret:转换后的数字
  109.         */
  110.         static unsigned char stringToUCharHex(string str);//20241010
  111.         /*
  112.         func:按照指定基数将字符串转换为unsigned short型整数[不检查合法性,默认为字符串合法]
  113.         @str:待转换的字符串
  114.         @iBase:基数
  115.         ret:转换后的数字
  116.         */
  117.         static unsigned short stringToUShort(string str, int iBase);//20241010
  118.         /*
  119.         func:按照十进制将字符串转换为unsigned short型整数[不检查合法性,默认为字符串合法]
  120.         @str:待转换的字符串
  121.         ret:转换后的数字
  122.         */
  123.         static unsigned short stringToUShortDec(string str);//20241010
  124.         /*
  125.         func:按照十六进制将字符串转换为unsigned short型整数[不检查合法性,默认为字符串合法]
  126.         @str:待转换的字符串
  127.         ret:转换后的数字
  128.         */
  129.         static unsigned short stringToUShortHex(string str);//20241010
  130.         /*
  131.         func:按照指定基数将字符串转换为unsigned int型整数[不检查合法性,默认为字符串合法]
  132.         @str:待转换的字符串
  133.         @iBase:基数
  134.         ret:转换后的数字
  135.         */
  136.         static unsigned int stringToUInt(string str, int iBase);//20241010
  137.         /*
  138.         func:按照十进制将字符串转换为unsigned int型整数[不检查合法性,默认为字符串合法]
  139.         @str:待转换的字符串
  140.         ret:转换后的数字
  141.         */
  142.         static unsigned int stringToUIntDec(string str);//20241010
  143.         /*
  144.         func:按照十六进制将字符串转换为unsigned int型整数[不检查合法性,默认为字符串合法]
  145.         @str:待转换的字符串
  146.         ret:转换后的数字
  147.         */
  148.         static unsigned int stringToUIntHex(string str);//20241010
  149.         /*
  150.         func:按照指定基数将字符串转换为unsigned long型整数[不检查合法性,默认为字符串合法]
  151.         @str:待转换的字符串
  152.         @iBase:基数
  153.         ret:转换后的数字
  154.         */
  155.         static unsigned long stringToULong(string str, int iBase);//20241010
  156.         /*
  157.         func:按照十进制将字符串转换为unsigned long型整数[不检查合法性,默认为字符串合法]
  158.         @str:待转换的字符串
  159.         ret:转换后的数字
  160.         */
  161.         static unsigned long stringToULongDec(string str);//20241010
  162.         /*
  163.         func:按照十六进制将字符串转换为unsigned long型整数[不检查合法性,默认为字符串合法]
  164.         @str:待转换的字符串
  165.         ret:转换后的数字
  166.         */
  167.         static unsigned long stringToULongHex(string str);//20241010
  168.         /*
  169.         func:按照指定基数将字符串转换为unsigned long long型整数[不检查合法性,默认为字符串合法]
  170.         @str:待转换的字符串
  171.         @iBase:基数
  172.         ret:转换后的数字
  173.         */
  174.         static unsigned long long stringToULongLong(string str, int iBase);//20241010
  175.         /*
  176.         func:按照十进制将字符串转换为unsigned long long型整数[不检查合法性,默认为字符串合法]
  177.         @str:待转换的字符串
  178.         ret:转换后的数字
  179.         */
  180.         static unsigned long long stringToULongLongDec(string str);//20241010
  181.         /*
  182.         func:按照十六进制将字符串转换为unsigned long long型整数[不检查合法性,默认为字符串合法]
  183.         @str:待转换的字符串
  184.         ret:转换后的数字
  185.         */
  186.         static unsigned long long stringToULongLongHex(string str);//20241010
  187.         //string to num [signed]
  188.         //=============================================================================================================
  189.         /*
  190.         func:按照指定基数将字符串转换为char型整数[不检查合法性,默认为字符串合法]
  191.         @str:待转换的字符串
  192.         @iBase:基数
  193.         ret:转换后的数字
  194.         */
  195.         static char stringToChar(string str, int iBase);//20241011
  196.         /*
  197.         func:按照十进制将字符串转换为char型整数[不检查合法性,默认为字符串合法]
  198.         @str:待转换的字符串
  199.         ret:转换后的数字
  200.         */
  201.         static char stringToCharDec(string str);//20241011
  202.         /*
  203.         func:按照十六进制将字符串转换为char型整数[不检查合法性,默认为字符串合法]
  204.         @str:待转换的字符串
  205.         ret:转换后的数字
  206.         */
  207.         static char stringToCharHex(string str);//20241011
  208.         /*
  209.         func:按照指定基数将字符串转换为short型整数[不检查合法性,默认为字符串合法]
  210.         @str:待转换的字符串
  211.         @iBase:基数
  212.         ret:转换后的数字
  213.         */
  214.         static short stringToShort(string str, int iBase);//20241011
  215.         /*
  216.         func:按照十进制将字符串转换为short型整数[不检查合法性,默认为字符串合法]
  217.         @str:待转换的字符串
  218.         ret:转换后的数字
  219.         */
  220.         static short stringToShortDec(string str);//20241011
  221.         /*
  222.         func:按照十六进制将字符串转换为short型整数[不检查合法性,默认为字符串合法]
  223.         @str:待转换的字符串
  224.         ret:转换后的数字
  225.         */
  226.         static short stringToShortHex(string str);//20241011
  227.         /*
  228.         func:按照指定基数将字符串转换为int型整数[不检查合法性,默认为字符串合法]
  229.         @str:待转换的字符串
  230.         @iBase:基数
  231.         ret:转换后的数字
  232.         */
  233.         static int stringToInt(string str, int iBase);//20241011
  234.         /*
  235.         func:按照十进制将字符串转换为int型整数[不检查合法性,默认为字符串合法]
  236.         @str:待转换的字符串
  237.         ret:转换后的数字
  238.         */
  239.         static int stringToIntDec(string str);//20241011
  240.         /*
  241.         func:按照十六进制将字符串转换为int型整数[不检查合法性,默认为字符串合法]
  242.         @str:待转换的字符串
  243.         ret:转换后的数字
  244.         */
  245.         static int stringToIntHex(string str);//20241011
  246.         /*
  247.         func:按照指定基数将字符串转换为long型整数[不检查合法性,默认为字符串合法]
  248.         @str:待转换的字符串
  249.         @iBase:基数
  250.         ret:转换后的数字
  251.         */
  252.         static long stringToLong(string str, int iBase);//20241011
  253.         /*
  254.         func:按照十进制将字符串转换为long型整数[不检查合法性,默认为字符串合法]
  255.         @str:待转换的字符串
  256.         ret:转换后的数字
  257.         */
  258.         static long stringToLongDec(string str);//20241011
  259.         /*
  260.         func:按照十六进制将字符串转换为long型整数[不检查合法性,默认为字符串合法]
  261.         @str:待转换的字符串
  262.         ret:转换后的数字
  263.         */
  264.         static long stringToLongHex(string str);//20241011
  265.         /*
  266.         func:按照指定基数将字符串转换为long long型整数[不检查合法性,默认为字符串合法]
  267.         @str:待转换的字符串
  268.         @iBase:基数
  269.         ret:转换后的数字
  270.         */
  271.         static long long stringToLongLong(string str, int iBase);//20241011
  272.         /*
  273.         func:按照十进制将字符串转换为long long型整数[不检查合法性,默认为字符串合法]
  274.         @str:待转换的字符串
  275.         ret:转换后的数字
  276.         */
  277.         static long long stringToLongLongDec(string str);//20241011
  278.         /*
  279.         func:按照十六进制将字符串转换为long long型整数[不检查合法性,默认为字符串合法]
  280.         @str:待转换的字符串
  281.         ret:转换后的数字
  282.         */
  283.         static long long stringToLongLongHex(string str);//20241011
  284. };
复制代码
ComStr.cpp

[code]/*@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[len + 1];        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[len + 1];        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[str.size()] = 0;        return true;}bool ComStr::CStringToPCHAR(CString cs, PCHAR pch){        int len = cs.GetLength();        PCHAR pch_ = new char[len + 1];        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[str.size()] = 0;        return true;}CString ComStr::stringToCString(string str){        return CString(str.c_str());}CString ComStr::pcharToCString(const char* pch){        return CString(pch);}CString ComStr:CHARToCString(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
您需要登录后才可以回帖 登录 | 立即注册