C==如何将string转化成char*
时间: 2023-10-09 17:04:29 浏览: 55
将 C++ 中的 std::string 类型转换为 C 语言中的 char* 类型,可以使用 string 类的 c_str() 函数。c_str() 函数返回一个指向正规 C 字符串的指针常量,内容与 string 对象相同。该指针可以用于作为参数传递给 C 函数,或者用于其他需要使用 C 风格字符串的情况。例如:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, world!";
char* cstr = &str[0]; // 也可以使用 c_str() 函数:char* cstr = str.c_str();
cout << cstr << endl;
return 0;
}
```
需要注意的是,c_str() 函数返回的是指向字符串的指针常量,不能通过该指针修改字符串的内容,否则会导致未定义的行为,甚至崩溃。如果需要修改字符串的内容,可以将其复制到一个可变的字符数组中。
相关问题
C++语言如何将string转化为char*?
C语言中,可以通过以下方式将string转化为char*:
1. 使用strcpy()函数将string复制到char*中:
```
char* str = "Hello World";
char* chr = (char*)malloc(strlen(str) + 1); //分配内存
strcpy(chr, str); //复制string到char*
```
2. 使用strdup()函数将string复制到char*中:
```
char* str = "Hello World";
char* chr = strdup(str); //复制string到char*
```
注意:以上两种方法都需要手动释放内存,即使用free()函数释放char*指针指向的内存。
c语言将String类型转化成char
数组的方法是什么?
将String类型转化为char数组的方法是使用字符串函数strcpy(),以及将char类型的数组逐一赋值给String类型。具体操作可以参考以下代码示例:
1. 使用strcpy()函数将String类型转化为char数组。
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[20];
char str2[20] = "Hello World!";
// 使用strcpy()函数将String类型转化为char数组
strcpy(str1, str2);
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
return 0;
}
```
2. 逐一赋值将char类型的数组转化为String类型。
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello World!";
int i;
String str2 = "";
// 逐一赋值将char类型的数组转化为String类型
for(i = 0; i < strlen(str1); i++) {
str2 += str1[i];
}
printf("str1: %s\n", str1);
printf("str2: %s\n", str2.c_str());
return 0;
}
```