c++ string类转化为c字符串
时间: 2024-05-02 19:15:50 浏览: 59
在C++中,string类提供了c_str()方法来将string类型转化为C字符串类型。该方法返回一个指向null终止字符数组的指针,可以直接赋值给char*类型的变量,例如:
```
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
const char* cstr = str.c_str();
cout << "C string: " << cstr << endl;
return 0;
}
```
输出结果为:
```
C string: hello world
```
相关问题
c++字符数组转化为字符串
将字符数组转化为字符串可以使用C++标准库中的string类,具体的实现方法如下:
```cpp
char str[] = "Hello, World!"; // 字符数组
string s(str); // 字符数组转化为字符串
```
上述代码中,我们首先定义了一个字符数组 `str`,然后通过 `string` 类的构造函数将其转化为字符串 `s`。
除了使用构造函数之外,我们还可以使用 `string` 类的 `assign` 函数来实现字符数组转化为字符串,具体的实现方法如下:
```cpp
char str[] = "Hello, World!"; // 字符数组
string s; // 定义一个空字符串
s.assign(str); // 将字符数组转化为字符串
```
上述代码中,我们首先定义了一个空字符串 `s`,然后使用 `assign` 函数将字符数组 `str` 转化为字符串。
c/c++ 结构体转化为字符串
将结构体转化为字符串的方法主要有两种:
1. 使用sprintf函数
可以使用sprintf函数将结构体中的数据格式化为字符串,然后存储到一个字符数组中。例如:
```c
#include <stdio.h>
struct Person {
char name[20];
int age;
float height;
};
int main() {
struct Person p = {"Tom", 20, 1.75};
char str[100];
sprintf(str, "name=%s, age=%d, height=%.2f", p.name, p.age, p.height);
printf("%s\n", str);
return 0;
}
```
输出结果为:`name=Tom, age=20, height=1.75`
2. 使用stringstream类
在C++中,可以使用stringstream类将结构体转化为字符串。例如:
```c++
#include <iostream>
#include <sstream>
using namespace std;
struct Person {
string name;
int age;
float height;
};
int main() {
Person p = {"Tom", 20, 1.75};
stringstream ss;
ss << "name=" << p.name << ", age=" << p.age << ", height=" << fixed << setprecision(2) << p.height;
string str = ss.str();
cout << str << endl;
return 0;
}
```
输出结果为:`name=Tom, age=20, height=1.75`
阅读全文