21xrx.com
2025-03-22 15:32:45 Saturday
文章检索 我的文章 写文章
C++ 如何将 string 转换为 char 数组
2023-07-07 07:09:47 深夜i     33     0
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' 结束符。

  
  

评论区

请求出错了