21xrx.com
2024-12-22 20:31:21 Sunday
登录
文章检索 我的文章 写文章
C++中string如何转换为char数组
2023-07-05 12:18:02 深夜i     --     --
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结尾。

  
  

评论区

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