打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
发几个c++常用小工具的函数
  1. //取当前日期   
  2. string getCurDate()  
  3. {  
  4.     time_t nowtime;  
  5.     time(&nowtime);    //取当前时间值   
  6.     struct tm *tPtr;      
  7.     tPtr = localtime(&nowtime);  
  8.   
  9.     char dateStamp[32];  
  10.     ACE_OS::sprintf(dateStamp, "%04d%02d%02d", tPtr->tm_year+1900 ,tPtr->tm_mon+1,tPtr->tm_mday);  
  11.           
  12.     return dateStamp;  
  13. }  
  14. //取得当前时间   
  15. string getCurTime()  
  16. {  
  17.     time_t nowtime;  
  18.     time(&nowtime);     
  19.     struct tm *tPtr;      
  20.     tPtr = localtime(&nowtime);   
  21.   
  22.     char timeStamp[15];  
  23.     memset(timeStamp, 0x00, 15);  
  24.     ACE_OS::sprintf(timeStamp, "%02d%02d%02d", tPtr->tm_hour,tPtr->tm_min,tPtr->tm_sec);  
  25.           
  26.     return timeStamp;  
  27. }  
  28. //int型转string 型   
  29. string intToString(int value)  
  30. {  
  31.     char tmpString[15];  
  32.     memset(tmpString, 0x00, 15);  
  33.     sprintf(tmpString, "%d", value);  
  34.     return  tmpString;  
  35. }  
  36. //将字符串处理为小写。   
  37. void toLower(string &strTmp)  
  38. {  
  39.     for (unsigned int i = 0; i < strTmp.length(); i++)  
  40.     {  
  41.         strTmp[i] = tolower(strTmp[i]);  
  42.     }  
  43.     return;  
  44. }  
  45. ///根据分隔标记flag将字符串放入。。。。   
  46. int getItem(string &msg ,  char flag, vector<string> &line)  
  47. {  
  48.     try  
  49.     {  
  50.         if (line.size() != 0)  
  51.         {  
  52.             line.clear();  
  53.         }  
  54.           
  55.         if (msg.length() == 0)  
  56.         {  
  57.             return 0;  
  58.         }  
  59.   
  60.         char *tmpMsg = &msg[0];  
  61.   
  62.         int begin = 0;  
  63.         int end = 0;  
  64.         string tmp;  
  65.         for (unsigned int i = 0; i < msg.length(); i ++)  
  66.         {  
  67.             if (tmpMsg[i] == flag)  
  68.             {  
  69.                 end = i;  
  70.             }  
  71.             else  
  72.             {  
  73.                 continue;  
  74.             }   
  75.   
  76.             if ((end-begin)> 0)  
  77.             {               
  78.                  tmp = string(&tmpMsg[begin], end-begin);  
  79.             }  
  80.             else  
  81.             {  
  82.                 tmp = "";  
  83.             }  
  84.             begin = end+1;                 
  85.             line.push_back(tmp);  
  86.            
  87.         }  
  88.         if ((msg.length()-begin)> 0)  
  89.         {               
  90.             tmp  = string(&tmpMsg[begin], msg.length()-begin);  
  91.             line.push_back(tmp);  
  92.         }       
  93.   
  94.     }  
  95.     catch(...)  
  96.     {  
  97.         ACE_DEBUG(( _INFO ACE_TEXT("  getItem execpaction:[%s].\n"), msg.c_str()));  
  98.         return -1;  
  99.     }  
  100.     return 0;  
  101. }  
  102. ////输出vector的内容。   
  103. void dispVector(const vector<string> &vecTmp)  
  104. {  
  105.     if (vecTmp.size() == 0)  
  106.     {  
  107.         ACE_DEBUG(( _INFO ACE_TEXT( " vector is null\n" )));  
  108.         return;          
  109.     }  
  110.       
  111.     for (unsigned int i = 0 ; i < vecTmp.size(); i++)  
  112.     {  
  113.         ACE_DEBUG(( _INFO ACE_TEXT( "  [%25s]\n" ), vecTmp[i].c_str()));          
  114.     }  
  115.   
  116.     return ;  
  117. }  
  118. ////返回num后的字符串   
  119. string lastStr(string &from, int num)  
  120. {  
  121.     if (from.length() <= (unsigned int)num)  
  122.     {  
  123.         return from;  
  124.     }  
  125.     else  
  126.     {  
  127.         return from.substr(from.length()-num, num);  
  128.     }  
  129. }  
  130.   
  131. string leftFullChar(string &from, int count, char flag)  
  132. {  
  133.     if (from.length() > (unsigned int)count)  
  134.     {  
  135.         return from ;  
  136.     }  
  137.   
  138.     int fullCount  = (int)from.length() - count;  
  139.     string strTmp(fullCount, flag);  
  140.     strTmp += from;  
  141.     return strTmp;  
  142. }  
  143.   
  144. string rightFullChar(string &from, int count, char flag)  
  145. {  
  146.     if (from.length() > (unsigned int)count)  
  147.     {  
  148.         return from ;  
  149.     }  
  150.   
  151.     int fullCount  = (int)from.length() - count;  
  152.     string strTmp(fullCount, flag);  
  153.     return from+strTmp;  
  154. }  
  1. ///////十六进制转char。。。。   
  2. inthexToChar(string &value, char *buf, int &bufLen)  
  • {    
  • //    ACE_DEBUG(( _INFO ACE_TEXT( "value:[%s]\n" ), value.c_str()));   
  •   
  •     memset(buf, 0x00, bufLen);      
  •     if ((unsigned int )bufLen < (value.length()/2))   
  •     {  
  •         return -1;  
  •     }  
  •   
  •     if (value.length() == 0)  
  •     {  
  •         return -1;  
  •     }  
  •     if (value.length() % 2 != 0)  
  •     {  
  •         return -1;  
  •     }  
  •   
  •     int bufIndex = 0;  
  •     for (unsigned int i = 0; i < value.length()/2; i++)  
  •     {      
  •         string tmp = value.substr(i*2, 2);    
  •         ascToHex(tmp.c_str(), &buf[bufIndex], 2);  
  •         bufIndex++;  
  •     }  
  •   
  •     bufLen = bufIndex;  
  •       
  •     //ACE_HEX_DUMP((LM_INFO, (char *)buf, bufLen, "resp message:"));   
  •       
  •     return 0;  
  • }  
  •   
  • ////asc转十六进制   
  • intascToHex(const char *Asc, char *Hex, int AscLen)  
  • {  
  •     char *HexPtr = Hex;  
  •     short i;  
  •       
  •     for(i = 0; i < AscLen; i++)  
  •     {  
  •         *HexPtr = Asc[i] << 4;  
  •         if (!(Asc[i]>='0' && Asc[i]<='9'))  
  •             *HexPtr += 0x90;  
  •         i++;  
  •         *HexPtr |= (Asc[i] & 0x0F);  
  •         if (!(Asc[i]>='0' && Asc[i]<='9'))  
  •             *HexPtr += 0x09;  
  •         HexPtr++;  
  •     }  
  •       
  •     return 0;  
  • }  
  •   
  • //十六进制转asc   
  • inthexToAsc(const char *Hex, int HexLen, char *Asc)  
  • {  
  •     int i;  
  •     char *AscPtr;  
  •     const char *HexPtr;  
  •     char Temp;  
  •   
  •     HexPtr=Hex;  
  •     AscPtr=Asc;  
  •   
  •     for(i = 0; i < HexLen; i++)  
  •     {  
  •         Temp = (*HexPtr & 0xf0) >> 4;  
  •         if (Temp < 10)  
  •             *AscPtr = 0x30 + Temp; // 数字0-9   
  •         else  
  •             *AscPtr = 0x37 + Temp; // 字母A-F   
  •               
  •         AscPtr++;  
  •           
  •         Temp = *HexPtr & 0x0f;  
  •         if (Temp < 10)  
  •             *AscPtr = 0x30 + Temp;  
  •         else  
  •             *AscPtr = 0x37 + Temp;  
  •               
  •         AscPtr++;  
  •         HexPtr++;  
  •     }  
  •       
  •     return 0;  
  • }  
  • //删除字符串中的空格。   
  • voiddelAllBlank(string &line)  
  • {  
  •     if (line.length() <= 0)          
  •     {  
  •         return;  
  •     }  
  •   
  •     string tmp;  
  •     tmp.clear();  
  •     try  
  •     {  
  •        for(unsigned int i = 0; i < line.length(); i++)  
  •         {  
  •             if (line[i] == ' ' ||  line[i] == '\t'   
  •              || line[i] == '\n' || line[i] == '\r')  
  •             {  
  •                 continue;  
  •             }  
  •             else  
  •             {  
  •                 tmp += line[i];    
  •             }  
  •         }  
  •         line.clear();  
  •         line = tmp;  
  •     }  
  •     catch(...)  
  •     {          
  •         ACE_DEBUG(( _ERROR ACE_TEXT( "  delAllBlank execaption\n" ) ));            
  •     }  
  •     return;  
  • }  
  •   
  • ///同上。   
  • voiddelAllBlank(char *pstr)  
  • {  
  •     if (NULL == pstr)  
  •     {  
  •         return;  
  •     }  
  •   
  •     int strLen = strlen(pstr);  
  •   
  •     string tmpStr;  
  •     try  
  •     {  
  •        for(int i = 0; i < strLen; i++)  
  •         {  
  •             if (pstr[i] == ' ' ||  pstr[i] == '\t'   
  •              || pstr[i] == '\n' || pstr[i] == '\r')  
  •             {  
  •                 continue;  
  •             }  
  •             else  
  •             {  
  •                 tmpStr += pstr[i];    
  •             }  
  •         }  
  •     }  
  •     catch(...)  
  •     {          
  •         ACE_DEBUG(( _ERROR ACE_TEXT( "  delAllBlank execaption\n" ) ));            
  •     }  
  •   
  •     memset(pstr, 0x00, strLen);  
  •     memcpy(pstr, tmpStr.c_str(), tmpStr.length());  
  •       
  •     return;  
  • }  
  •   
  • /////删除最后一个空格   
  • voiddelLastBlank(char *pstr)  
  • {  
  •     if (NULL == pstr)  
  •     {  
  •         return;  
  •     }      
  •       
  •     string tmpStr = pstr;  
  •     memset(pstr, 0x00, strlen(pstr));  
  •     try  
  •     {  
  •         for (;;)  
  •         {  
  •             if (tmpStr.length() > 0)  
  •             {  
  •                 if (tmpStr[tmpStr.length()-1] == ' ' ||  tmpStr[tmpStr.length()-1] == '\t'   
  •                  || tmpStr[tmpStr.length()-1] == '\n' || tmpStr[tmpStr.length()-1] == '\r')  
  •                 {  
  •                     tmpStr.erase(tmpStr.length()-1);  
  •                 }  
  •                 else  
  •                 {  
  •                     break;  
  •                 }  
  •             }  
  •             else  
  •             {  
  •                 break;  
  •             }              
  •         }  
  •     }      
  •     catch(...)  
  •     {          
  •         ACE_DEBUG(( _ERROR ACE_TEXT( "  delLastBlank execaption\n" ) ));            
  •     }  
  •     memcpy(pstr, tmpStr.c_str(), tmpStr.length());  
  •       
  •     return;  
  • }  
  •   
  • voiddelLastBlank(string &tmpStr )  
  • {  
  •     try  
  •     {  
  •         for (;;)  
  •         {  
  •             if (tmpStr.length() > 0)  
  •             {          
  •                 if (tmpStr[tmpStr.length()-1] == ' ' ||  tmpStr[tmpStr.length()-1] == '\t'   
  •                  || tmpStr[tmpStr.length()-1] == '\n' || tmpStr[tmpStr.length()-1] == '\r')  
  •                 {  
  •                     tmpStr.erase(tmpStr.length()-1);  
  •                 }  
  •                 else  
  •                 {  
  •                     break;  
  •                 }  
  •             }  
  •             else  
  •             {  
  •                 break;  
  •             }  
  •         }  
  •     }      
  •     catch(...)  
  •     {          
  •         ACE_DEBUG(( _ERROR ACE_TEXT( "  delLastBlank execaption\n" ) ));            
  •     }      
  •     return;  
  • }  
  • ////删除最前边的空格。   
  • voiddelHeadBlank(string &tmpStr )  
  • {  
  •     try  
  •     {  
  •         for (;;)  
  •         {  
  •             if (tmpStr.length() > 0)  
  •             {          
  •                 if (tmpStr[0] == ' ' || tmpStr[0] == '\t'   
  •                  || tmpStr[0] == '\n' || tmpStr[0] == '\r')  
  •                 {  
  •                     tmpStr.erase(0);  
  •                 }  
  •                 else  
  •                 {  
  •                     break;  
  •                 }  
  •             }  
  •             else  
  •             {  
  •                 break;  
  •             }  
  •         }  
  •     }      
  •     catch(...)  
  •     {          
  •         ACE_DEBUG(( _ERROR ACE_TEXT( "  delLastBlank execaption\n" ) ));            
  •     }      
  •     return;  
  • }  
  • //加载文件。   
  • intloadFile(string fileName, vector<string> &vecLine)  
  • {  
  •     vecLine.clear();  
  •   
  •     FILE *m_fp = fopen(fileName.c_str(), "rb");  
  •     if (NULL == m_fp)  
  •     {          
  •         ACE_DEBUG(( _ERROR ACE_TEXT( " getline execpaction:[%s]\n" ), fileName.c_str()));              
  •         return -1;  
  •     }  
  •   
  •     char fileLine[MAX_FILE_LINE_LEN];  
  •       
  •     try  
  •     {      
  •         for (;;)  
  •         {  
  •             memset(fileLine, 0x00, MAX_FILE_LINE_LEN);  
  •             if (!feof(m_fp))   
  •             {                           
  •                 if (NULL == fgets(fileLine, MAX_FILE_LINE_LEN, m_fp))  
  •                 {  
  •                     break;  
  •                 }  
  •                 vecLine.push_back(fileLine);                     
  •             }  
  •             else  
  •             {  
  •                 break;  
  •             }          
  •         }  
  •     }  
  •     catch(...)  
  •     {          
  •         fclose(m_fp);  
  •         ACE_DEBUG(( _ERROR ACE_TEXT( " getline execpaction:[%s]\n" ), fileName.c_str()));              
  •         return -1;  
  •     }  
  •     fclose(m_fp);  
  •     return 0;  
  • }  
  •   
  •   
  • ////写到文件   
  •   
  • void writeToFile(string fileName, char *format, ...)  
  • {  
  •     va_list ap;  
  •     char date[10240];  
  •     char msgformat[10240];  
  •   
  •     memset(msgformat, 0x00, 10240);  
  •     memset(date, 0x00, 10240);  
  •   
  •     FILE *logfp = NULL;  
  •     logfp = fopen(fileName.c_str(), "a+");  
  •   
  •     if (NULL == logfp)  
  •     {  
  •         printf("open log file fail.\n");  
  •         return ;  
  •     }  
  •   
  •     if (NULL == format)  
  •     {  
  •         printf("NULL == format.\n");  
  •     }  
  •   
  •     strcat(msgformat, format);  
  •   
  •     int msglen = strlen(msgformat);  
  •     if ('\n' != msgformat[msglen - 1])  
  •     {  
  •         strcat(msgformat, "\n");  
  •     }  
  •   
  •     va_start(ap, format);  
  •     vfprintf (logfp, msgformat, ap);  
  •     va_end(ap);  
  •   
  •     fflush(logfp);  
  •   
  •     fclose(logfp);  
  •   
  •     return;  
  • }  
  • 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    注册机的源码
    一个比较全的string类的实现(比较乱)
    正方加密解密算法及获取密钥
    char * 与 string 类型相互转换方法
    使用VB.net 创建简单的TTS中英文混合语音朗读
    C/C 程序设计员应聘常见面试试题 strcpy
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服