21xrx.com
2025-06-21 07:12:47 Saturday
文章检索 我的文章 写文章
C++中string如何转换为char数组
2023-07-05 12:18:02 深夜i     18     0
C++ string 转换 char数组

在C++中,string是一种非常常见的数据类型,常用于存储字符串。但是有时候,我们需要将string类型转换为char数组类型,比如在使用一些C语言库函数时。那么该怎么做呢?

其实,string类型本身就是以char数组的形式存储的,所以只需要将其转换为char数组即可。下面介绍两种转换方法:

方法一:使用c_str()函数

string类型中有一个函数叫做c_str(),该函数可以返回一个以NULL结尾的char数组,该数组就是string类型所存储的字符串。

示例代码如下:

#include <iostream>
#include <string>
using namespace std;
int main() {
  string str = "hello world";
  const char* charstr = str.c_str();
  
  cout << "char array: " << charstr << endl;
  
  return 0;
}

在上述示例代码中,我们定义了一个字符串变量str,并将其赋值为"hello world"。然后使用c_str()函数将str转换为一个char数组,最后使用cout输出char数组。

方法二:使用copy()函数

string类型中还有一个函数叫做copy(),该函数可以将string类型的字符串复制到一个char数组中。

示例代码如下:

#include <iostream>
#include <string>
using namespace std;
int main() {
  string str = "hello world";
  char charstr[20];
  
  str.copy(charstr, str.size() + 1);
  charstr[str.size()] = '\0';
  
  cout << "char array: " << charstr << endl;
  
  return 0;
}

在上述示例代码中,我们定义了一个字符串变量str,并将其赋值为"hello world"。然后定义了一个大小为20的char数组charstr,使用copy()函数将str复制到charstr中。需要注意的是,由于char数组需要以NULL结尾,所以需要在最后一位加上\0。

总结

无论是使用c_str()函数还是copy()函数,将string类型转换为char数组都是非常简单的。在使用时,需要注意char数组需要以NULL结尾。

  
  

评论区