打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
发几个c++常用小工具的函数
albert_wei
>《C++》
2013.10.31
关注
//取当前日期
string getCurDate()
{
time_t
nowtime;
time(&nowtime);
//取当前时间值
struct
tm
*tPtr;
tPtr = localtime(&nowtime);
char
dateStamp[32];
ACE_OS::sprintf(dateStamp,
"%04d%02d%02d"
, tPtr->tm_year+1900 ,tPtr->tm_mon+1,tPtr->tm_mday);
return
dateStamp;
}
//取得当前时间
string getCurTime()
{
time_t
nowtime;
time(&nowtime);
struct
tm
*tPtr;
tPtr = localtime(&nowtime);
char
timeStamp[15];
memset(timeStamp, 0x00, 15);
ACE_OS::sprintf(timeStamp,
"%02d%02d%02d"
, tPtr->tm_hour,tPtr->tm_min,tPtr->tm_sec);
return
timeStamp;
}
//int型转string 型
string intToString(
int
value)
{
char
tmpString[15];
memset(tmpString, 0x00, 15);
sprintf(tmpString,
"%d"
, value);
return
tmpString;
}
//将字符串处理为小写。
void
toLower(string &strTmp)
{
for
(unsigned
int
i = 0; i < strTmp.length(); i++)
{
strTmp[i] = tolower(strTmp[i]);
}
return
;
}
///根据分隔标记flag将字符串放入。。。。
int
getItem(string &msg ,
char
flag, vector<string> &line)
{
try
{
if
(line.size() != 0)
{
line.clear();
}
if
(msg.length() == 0)
{
return
0;
}
char
*tmpMsg = &msg[0];
int
begin = 0;
int
end = 0;
string tmp;
for
(unsigned
int
i = 0; i < msg.length(); i ++)
{
if
(tmpMsg[i] == flag)
{
end = i;
}
else
{
continue
;
}
if
((end-begin)> 0)
{
tmp = string(&tmpMsg[begin], end-begin);
}
else
{
tmp =
""
;
}
begin = end+1;
line.push_back(tmp);
}
if
((msg.length()-begin)> 0)
{
tmp = string(&tmpMsg[begin], msg.length()-begin);
line.push_back(tmp);
}
}
catch
(...)
{
ACE_DEBUG(( _INFO ACE_TEXT(
" getItem execpaction:[%s].\n"
), msg.c_str()));
return
-1;
}
return
0;
}
////输出vector的内容。
void
dispVector(
const
vector<string> &vecTmp)
{
if
(vecTmp.size() == 0)
{
ACE_DEBUG(( _INFO ACE_TEXT(
" vector is null\n"
)));
return
;
}
for
(unsigned
int
i = 0 ; i < vecTmp.size(); i++)
{
ACE_DEBUG(( _INFO ACE_TEXT(
" [%25s]\n"
), vecTmp[i].c_str()));
}
return
;
}
////返回num后的字符串
string lastStr(string &from,
int
num)
{
if
(from.length() <= (unsigned
int
)num)
{
return
from;
}
else
{
return
from.substr(from.length()-num, num);
}
}
string leftFullChar(string &from,
int
count,
char
flag)
{
if
(from.length() > (unsigned
int
)count)
{
return
from ;
}
int
fullCount = (
int
)from.length() - count;
string strTmp(fullCount, flag);
strTmp += from;
return
strTmp;
}
string rightFullChar(string &from,
int
count,
char
flag)
{
if
(from.length() > (unsigned
int
)count)
{
return
from ;
}
int
fullCount = (
int
)from.length() - count;
string strTmp(fullCount, flag);
return
from+strTmp;
}
///////十六进制转char。。。。
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功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×