gpt4 book ai didi

c++ - 如何将 char * 复制到字符串中,反之亦然

转载 作者:IT老高 更新时间:2023-10-28 12:47:17 26 4
gpt4 key购买 nike

如果我将 char * 传递给函数。然后,我想将该 char * 转换为 std::string ,一旦我得到结果,将其从 std::string 转换回 char * 以显示结果。

  1. 我不知道如何进行转换(我说的不是 const char *,只是 char *)
  2. 我不确定如何操作我发送的指针的值。

所以我需要做的步骤

  1. 接受一个字符 *
  2. 将其转换为字符串。
  3. 获取该字符串的结果并将其以 char * 的形式放回
  4. 返回结果,以便该值在函数外部可用并且不会被破坏。

如果可能的话,我可以看看它是如何通过引用和指针来完成的(我通过值传递其地址,但是我仍然可以修改指针指向的值。所以即使指针地址的拷贝在函数被破坏了,我仍然在外面看到改变的值。

谢谢!

最佳答案

转换 char*std::string :

char* c = "Hello, world";
std::string s(c);

转换 std::stringchar* :

std::string s = "Hello, world";
char* c = new char[s.length() + 1];
strcpy(c, s.c_str());

// and then later on, when you are done with the `char*`:
delete[] c;

我更喜欢使用 std::vector<char>而不是实际的 char* ;那么你就不必管理自己的内存了:

std::string s = "Hello, world";
std::vector<char> v(s.begin(), s.end());
v.push_back('\0'); // Make sure we are null-terminated
char* c = &v[0];

关于c++ - 如何将 char * 复制到字符串中,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564052/

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