21xrx.com
2024-11-08 22:13:25 Friday
登录
文章检索 我的文章 写文章
C++ 如何将 string 转换为 char 数组
2023-07-07 07:09:47 深夜i     --     --
C++ string char 数组 转换

在 C++ 中, string 类型是一种非常方便的字符串类型。但是,在某些情况下,需要将 string 转换为 char 数组,例如在将字符串传递给 C 语言库函数或在网络编程中传递字符串。如何将 string 类型转换为 char 数组呢?下面是两种方法:

方法一:使用 c_str() 函数

c_str() 函数是 string 类型中常用的一个函数,它返回一个指向字符串实例存储的数组的指针,其类型为 const char *。使用该函数可以方便地将一个 string 转换为一个 char 数组。

示例代码如下:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "hello world";

  const char *cstr = str.c_str();

  int len = str.length();

  char char_array[len+1];

  for (int i = 0; i < len; i++)

  {

    char_array[i] = cstr[i];

  }

  char_array[len] = '\0';

  cout << "string: " << str << endl;

  cout << "char array: " << char_array << endl;

  return 0;

}

方法二:使用 memcpy() 函数

另一种方法是使用 memcpy() 函数将 string 转换为 char 数组。memcpy() 函数将指定长度的字节从一个内存位置复制到另一个内存位置,可以将 string 的内存位置复制到 char 数组中。

示例代码如下:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "hello world";

  int len = str.length();

  char char_array[len+1];

  memcpy(char_array, str.c_str(), len+1);

  cout << "string: " << str << endl;

  cout << "char array: " << char_array << endl;

  return 0;

}

总结

以上两种方法都可以将 string 类型转换为 char 数组,具体使用哪种方法取决于代码实现的具体要求和个人喜好。无论使用哪种方法,都需要注意 char 数组的长度,必须要给数组分配足够大小的内存空间。此外,char 数组最后需要手动添加一个 '\0' 结束符。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复