在icu unicode中是否存在strdup等价物?

时间:2011-03-23 09:56:40

标签: c unicode icu strdup

问题是不言自明的。我正在使用C API。

3 个答案:

答案 0 :(得分:2)

不,但它很容易实现。它只是:

UChar *u_strdup(UChar *in) {
    uint32_t len = u_strlen(in) + 1;
    UChar *result = malloc(sizeof(UChar) * len);
    u_memcpy(result, in, len);
    return result;
}

答案 1 :(得分:1)

没有,但您可以请求一个并提交错误。

但是,ICU通常不返回调用者拥有的内存 - 它使用自己的包装malloc / free函数并在对象上定义自定义删除器。所以,这将是完全不同的。

答案 2 :(得分:1)

结帐_strdup, _wcsdup, _mbsdup。 _wcsdup和_mbsdup是strdup的宽字节和多字节版本。