gpt4 book ai didi

c++ - 有没有更好的方法将字符串复制到已经包含内容的字符数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:25 24 4
gpt4 key购买 nike

messageBuffer[0] = 1;
messageBuffer[1] = 0;
for (int i = 2; i < (userName.size() + 2); i++)
{
messageBuffer[i] = userName[(i - 2)];
}

用户名是一个字符串。我只是想知道是否已经存在我尚未找到的功能。我试过查看 cpluscplus,但什么也没看到。感谢大家的帮助 =) 我真的很感激。这个网站太棒了!

最佳答案

标准不保证 C++ 字符串是连续的,这意味着到目前为止使用 strncpy 的所有建议要么不安全(如果它们从 &userName[0] 之类的内容复制,要么可能效率低下(如果他们从 userName.c_str() 复制,这可能意味着不必要的复制)

正确的 C++ 解决方案是使用 std::copy。快速并且安全。

std::copy(userName.begin(), userName.end(), messageBuffer+2);

作为一般规则,如果您发现自己在 C++ 程序中乱用 C 字符串函数您做错了

关于c++ - 有没有更好的方法将字符串复制到已经包含内容的字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1706231/

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