gpt4 book ai didi

c++ - 预置和附加到 cstring

转载 作者:行者123 更新时间:2023-11-28 04:48:37 25 4
gpt4 key购买 nike

我有以下字符串 tok_str 类似于“default.png”我想预先添加 char ' 并附加 char '。

这就是我所做的,但是字符被附加到错误的位置

char *tok_str = const_cast<char*>(mReader->getAttributeValue(pAttrIdx));

char * mod_tok = new char[tok_str_len+2];

mod_tok[0] = '\'';

size_t len = strlen(tok_str);
size_t i;

memmove(mod_tok + len, mod_tok, strlen(mod_tok) + 1);

for (i = 0; i < len; ++i)
{
mod_tok[i] = tok_str[i];
}


char *dup;
char *cstr="'";

sprintf(mod_tok,"%s%s",cstr,(dup=strdup(mod_tok)));
free(dup);

最佳答案

如果您想继续使用以 null 结尾的字节字符串,您需要考虑和做一些事情。

第一个当然是 null-terminated 部分。一串 X 个字符需要 X+1 的空间来包含终止符。

第二个是你真正需要的只是一个sprintf(或者更好的snprintf)调用(一旦你分配了内存):

char* mod_tok = new char[strlen(tok_str) + 3];  // +2 for the extra characters, +1 for terminator
snprintf(mod_tok, strlen(tok_str) + 3, "'%s'", tok_str);

就是这样,现在您已经在原始字符串的前后添加了单引号。

关于c++ - 预置和附加到 cstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683467/

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