gpt4 book ai didi

c++ - 将多字符串复制到缓冲区

转载 作者:行者123 更新时间:2023-11-28 03:32:43 25 4
gpt4 key购买 nike

我正在使用一个返回宽字符多字符串作为结果的 windows-api。结果与下面相同:

L"apple\0banana\0orange\0\0"

是否有任何标准函数或性能良好的解决方案来将此结构复制到缓冲区?

copy_wide_char_multi_string(dst, src); // dst and src are wchar_t arrays

最佳答案

我从不费心使用宽字符串,所以将此视为准则。

您可以实现如下算法:

wchar_t * wide_string = L"something\0something else\0herp\0derp\0\0";
int size = 0;

int i = wcslen(wide_string + size); // length of wide string
size += i + 1; // length of wide string inc. null terminator
while (true)
{
int i = wcslen(wide_string + size); // length of wide string
size += i + 1; // length of wide string inc. null terminator
if (i == 0) break; // if length was 0 (2 nulls in a row) break
}
++size; // count final null as part of size

这将为您提供缓冲区中数据的大小。一旦你有了它,你就可以在上面使用 wmemcpy

关于c++ - 将多字符串复制到缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026412/

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