我在 c++ 中组合了两个字符串,但放错了

I combined two strings in c++ but get a wrong out put

本文关键字:字符串 两个 错了 c++ 组合 我在      更新时间:2023-10-16
while(in) {
memset(str, 0,1024);
in.getline(str, 1024);  // delim defaults to 'n'
string output = modifyString(str);
if (output != ""){
cout << output << endl;
string output1 = "INSERT INTO DATA_SRC "
"VALUES (" + output + ");";
cout << output1 << endl;
const char * command = output1.c_str();
cout << output << endl;
rc = sqlite3_exec(db, command, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %sn", zErrMsg);
sqlite3_free(zErrMsg);
return 1;
}
}

在这里,I + 两个字符串在一起。 而输出的本质上是: "D3318","D.A. Kline","通过GLC分离TMS衍生物定量测定水果中的糖",1970,"AOAC International杂志",53,6,1198,1202

这很好。但是在我把它结合到其他人之后。

预期: 插入DATA_SRC值("D3318","D.A. Kline","通过GLC分离TMS衍生物定量测定水果中的糖",1970年,"AOAC International杂志",53,6,1198,1202);

现实: 插入DATA_SRC值("D3318","D.A. Kline","通过 TMS 衍生物的 GLC 分离定量测定水果中的糖",1970 年,"AOAC 杂志");rnational',53,6,1198,1202

我现在不知道为什么。

您的modifyString函数(您没有显示)正在将空字节复制到字符串的末尾。字符串输出函数将在空字节处停止,以便与 C 字符串兼容。