You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQLite3查询结果列转换为C++字符串?

将SQLite3查询结果转换为C++ string的简便方法

sqlite3_column_text返回的是const char*类型,C++的std::string本身就支持直接用这个指针构造,这是最简便的实现方式:

const char* colText = reinterpret_cast<const char*>(sqlite3_column_text(dbResult, 1));
std::string colStr(colText);

关键注意事项

  • 空指针处理:如果查询的列值为NULL,sqlite3_column_text会返回NULL,直接构造string会触发未定义行为,建议先做判断:
    const char* colText = reinterpret_cast<const char*>(sqlite3_column_text(dbResult, 1));
    std::string colStr;
    if (colText != nullptr) {
        colStr = colText;
    } else {
        // 按需处理NULL值,比如设为空字符串或自定义默认值
        colStr = "";
    }
    
  • 编码兼容:sqlite3_column_text默认返回UTF-8编码的字符串,std::string可以直接存储UTF-8字节序列,若后续需要转宽字符(如wstring)再单独处理即可。
  • 指针生命周期:sqlite3_column_text返回的指针仅在当前查询结果集(dbResult)未被sqlite3_finalize销毁前有效,务必在销毁结果集前完成string的构造。

内容的提问来源于stack exchange,提问作者cShellPro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:25:31