#include <stdio.h>
#include <string.h>
#include <string>
#include <regex>
using namespace std;
extern "C"
/**@brief 通过正则表达式匹配,可将将’ 替换成 "
* @param[in] cstrAfter:替换完成后的字符串
* @param[in] lenAfter:替换完成后的字符串的长度
* @param[in] cstrBefore:原来的字符串
* @param[in] cstrSrc:原来字符串中想要被替换的字符
* @param[in] cstrSrc:原来字符串中想要替换成为的字符
* @param[out] 无
* @return <DB_RET_OK>成功
<DB_RET_FAIL>失败
*/
int cstring_replace(char *cstrAfter, int lenAfter,const char *cstrBefore, const char *cstrSrc, const char *cstrDst)
{
if(cstrAfter == NULL || cstrBefore == NULL || cstrSrc == NULL || cstrDst == NULL || lenAfter <= 0)
{
return -1;
}
regex pattern(cstrSrc);
string strAfter = regex_replace(cstrBefore, pattern, cstrDst);
strlcpy(cstrAfter, strAfter.c_str(), lenAfter);
return 0;
}
例子:
cstring_replace(username, sizeof(username), db_dev_config->videoIn.channelName, "'", "''");