gpt4 book ai didi

C++:是否有包含各种函数的特征类来操作零终止的 char * 和 wchar_t * 字符串?

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

例如,我刚刚发现自己编写了以下类特征:

template<class TCHAR> struct sz;
template<> struct sz<char>
{
static void copy(char *dst, int bufSize, const char *src)
{
strcpy_s(dst, bufSize, src);
}
};
template<> struct sz<wchar_t>
{
static void copy(wchar_t *dst, int bufSize, const wchar_t *src)
{
wcscpy_s(dst, bufSize, src);
}
};

我想知道是否真的必须写这样的东西,或者是否已经有任何东西可以让我们在不关心 wchar_tchar 的情况下操作字符串?

毕竟,我们有:

  • coutwcout
  • cerrwcerr
  • stringwstring
  • boost::formatboost::wformat
  • 等...

最佳答案

检查 std::char_traits<Ch> .特别是,strcpy(dst, src, n)可以改写成std::char_traits<Ch>::copy(dst, src, n) .

虽然它没有您要求的一切。内部仅提供标准 C 字符串函数。

对于 string对比wstring , 你可以使用 std::basic_string<Ch> ,这就是这两个 typedef 的实际含义。同样,我们有 boost::basic_format<Ch> .

关于C++:是否有包含各种函数的特征类来操作零终止的 char * 和 wchar_t * 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901225/

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