
C++ 常用自定义函数
杨小卫
技术男
展开
-
Format
string Format(BOOL bDebug, const char *fmt, ...){ va_list args; va_start(args, fmt); UINT size=1024; char *buff=new char[size]; int ret; while ( (ret=原创 2010-04-13 16:57:00 · 655 阅读 · 0 评论 -
Split
typedef struct st_split{ const char *p; unsigned int len;}split_t;//c函数,字符串分割为数组//str 要分割的字符//psdeli 分割字符串//pparr 分割结果,只保存子字符串在str中的开始位置与长度unsigned int split(const char *str原创 2010-04-13 16:01:00 · 676 阅读 · 0 评论 -
随机数扩展函数
#if !defined(_H_RAND_INCLUDE)#define _H_RAND_INCLUDE#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000long rand32(void) { return rand()^((long)rand()<<15) ^((long)rand()<原创 2011-12-20 09:36:31 · 661 阅读 · 0 评论 -
ParseURL, UrlLike, URL解析函数与匹配函数
// Url.h: interface for the Url class.////////////////////////////////////////////////////////////////////////#if !defined(_URL_H__)原创 2011-09-20 18:09:44 · 1605 阅读 · 0 评论 -
DeleteTree 函数
void DeleteTree(char* szPath);原创 2011-07-23 15:05:59 · 1117 阅读 · 0 评论 -
宏替换
#define toLower(x) transform(x.begin(), x.end(), x.begin(), tolower)//宏处理void OnMacro(string ¯o, string &result){ toLower(macro); if (macro=="br") { result="/r"; }}string& replace_macro(string& str){原创 2011-05-18 08:47:00 · 1271 阅读 · 0 评论 -
#RRGGBB 转 COLORREF
<br />//将颜色字符串(#XXXXXX)转换为颜色值COLORREF HexToColor(const char* strSource){ COLORREF nTemp=0; strSource=strchr(strSource,'#'); if (!strSource) return 0; strSource++; for(int i = 0; i < strlen(strSource); i++)原创 2011-05-18 08:14:00 · 1151 阅读 · 0 评论 -
trim 空格字符剔除函数
char *ltrim(char *string){ if (string==NULL || strlen(string)==0) return string; char *p=string; while(*p==' ') p++; memmove(string,p,strlen(p)+1); return string;}char *rtrim(char *string){ if (string=原创 2011-02-20 01:01:00 · 920 阅读 · 0 评论 -
CRC32.h
<br />#ifndef _CRC_H #define _CRC_H /* source copy from gg's common.c */ static unsigned int crc32_table[256]; static int crc32_initialized = 0; static void crc32_make_table() { unsigned int h = 1; unsigned int原创 2011-03-03 17:53:00 · 2152 阅读 · 0 评论 -
以16进制字符串输出二进制缓冲区,带排版
<br />/*以16进制字符串输出二进制缓冲区,带排版start 缓冲区指针len 传冲去长度col 列数默认16个16进制数n 列间隔0,4,8*/void dump_mem(unsigned char * start, unsigned int len, unsigned char col=16, unsigned char n=8, FILE *out=stdout){ if(start == NULL) return ;原创 2011-03-03 17:44:00 · 1244 阅读 · 0 评论 -
最快的C字符串复制函数
<br />char* StrCopy(char *dest, const char *source) { char *pd = dest; int s = source - dest; if ((unsigned)pd & 1) { *pd = *source; if (*pd == 0) return dest; pd +原创 2010-06-12 10:28:00 · 1826 阅读 · 0 评论 -
replace
string& replace_all(string& str, const string &old_value, const string &new_value){ while(true) { string::size_type pos(0); if( (pos=str.find(old_value))!=string::npos )原创 2010-04-15 08:50:00 · 744 阅读 · 0 评论 -
stristr
const char * stristr(const char * str1, const char * str2){ if ( str1==NULL || str2==NULL || strlen(str1)==0 || strlen(str2)==0 ) return 0; unsigned int l1=strlen(str1); unsigned int l2=strl原创 2010-04-14 08:51:00 · 1720 阅读 · 0 评论 -
创建随机目录及目录树函数
char gszAppPath[MAX_PATH]={0}; char gszTempPath[MAX_PATH]={0};//获取程序所在路径 const char * GetAppPath() { if (gszAppPath[0]==0) { ::GetModuleFileName(::GetModuleHandl原创 2011-12-20 09:53:29 · 880 阅读 · 0 评论