我目前有来自数据库查询的一堆SQLCHAR对象。查询结果存储在std :: string中,然后绑定到各个SQLCHAR变量。为了删除所有非字母数字字符,需要分析其中一些变量。最好的方法是什么?

我已经实现了std :: string的基本解析...

for (std::string::iterator i = str.end()-1; i >= str.begin(); --i)
{
    if ( !isalpha(*i) && !isdigit(*i) )
    {
        str1.erase(i);
    }
}


但是现在我遇到了将SQLCHAR转换为std :: string然后再次返回的问题。有一个更好的方法吗?

最佳答案

考虑这个伪代码

bool is_not_alnum(char c){return !isalnum(c);}
unsigned char* s = ()blah_as_sql_char; //somehow its gotta cast to cstr right?
std::remove_if(s, strlen(s), is_not_alnum);
SQLCHAR result = (SQLCHAR)s; //cast it back however


http://www.cplusplus.com/reference/clibrary/cctype/isalnum/
http://www.sgi.com/tech/stl/remove_if.html

关于c++ - 从SQLCHAR对象中解析出非字母数字字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1416273/

10-11 16:44