gpt4 book ai didi

core-data - 如何在 sqlite3 文本列返回的 c 字符串中制作换行符?

转载 作者:行者123 更新时间:2023-12-03 18:40:13 25 4
gpt4 key购买 nike

我想知道如何在 sqlite3_column_text 返回的 c 字符串中使用换行符控制字符。例如,这是从查询返回到 sqlite 数据库的文本:

"Lorem ipsum\ndolor sit amet,\nconsectetur\nadipiscing elit."

这是我用来获取它的代码:
char *body = (char *)sqlite3_column_text(statement, 1);
NSString *str = (body)?[NSString stringWithUTF8String:body]:@"";

当我尝试打印它时,问题就来了,因为作为返回:
Lorem ipsum\ndolor sit amet,\nconsectetur\nadipiscing elit.

代替:
Lorem ipsum
dolor sit amet,
consectetur
adipiscing elit.

使用相同的文本但从 Core Data 中的字符串列返回按预期工作,但我不知道为什么在 sqlite3 中没有。我希望有人可以指点,因为这很令人沮丧。

最佳答案

查看 literal values SQLite 的文档部分我发现它返回两个字符的原因 \n而不是 newline是因为不支持使用反斜杠字符的 C 样式转义,因为它们不是标准 SQL。所以我尝试了一种不同的方法,使用 NSString 而不是直接使用 SQLite:

char *body = (char *)sqlite3_column_text(statement, 1);
NSString *str = (body)?[NSString stringWithUTF8String:body]:@"";
NSString *container = [str stringByReplacingOccurrencesOfString:@"\\n"
withString:@"\n"];

感谢 this two帖子,我想到使用 \\n替换 \n在最终的 NSString 中正确,因此可以使用其他有效的控制字符。

关于core-data - 如何在 sqlite3 文本列返回的 c 字符串中制作换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6194929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com