21xrx.com
2024-06-03 03:50:53 Monday
登录
文章检索 我的文章 写文章
C++ 字符串转换为 C 字符串代码
2023-07-10 19:57:32 深夜i     --     --
C++ 字符串 C 字符串 转换 代码

在C++中使用字符串具有很多方便之处,但有时我们需要将字符串转换为C风格的字符串。C风格的字符串是一个以null结尾的字符数组,通常使用char类型的指针来表示。在这种情况下,我们可以使用以下代码来将C++字符串转换为C字符串。


#include <cstring>

#include <iostream>

#include <string>

using namespace std;

int main() {

 string s = "Hello World!";

 char* c_str = new char[s.size() + 1];

 strcpy(c_str, s.c_str());

 cout << "C String: " << c_str << endl;

 delete[] c_str;

 

 return 0;

}

这段代码首先创建了一个C++字符串“Hello World!”,然后声明了一个指向字符的指针c_str,并将其初始化为一个新分配的字符数组。我们使用`new char[s.size() + 1]`来为字符数组分配内存(+1是为了添加字符串结尾的null字符)。然后,我们使用`strcpy`函数将C++字符串的副本复制到c_str指向的字符数组中。

我们可以使用C函数来操作字符串,如strcpy和strcat,它们定义在cstring头文件中。我们还可以使用其他C++字符串函数,如`c_str()`和`data()`,它们可以返回指向C风格字符串的指针。`c_str()`函数返回指向以null结尾的字符数组的指针,而`data()`函数返回指向不以null结尾的字符数组的指针,它们的区别在于当您想读取字符串时,使用`c_str()`函数,当您想修改字符串时,请使用`data()`函数。

最后,我们删除了为c_str分配的内存,以防止内存泄漏。通过这种方法,我们可以轻松地将字符串从C++转换为C语言字符串。

  
  

评论区

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