c++中两个string类型如何相互转换
时间: 2024-05-23 11:16:33 浏览: 67
两个string类型之间可以使用c_str()函数来相互转换,比如将string类型的str1转换为char数组类型的charArr1,则可使用如下代码:
string str1 = "hello";
const char* charArr1 = str1.c_str();
同理,也可以将char数组类型的charArr1转换为string类型的str1,代码如下:
char charArr1[] = "world";
string str1(charArr1);
相关问题
c++ float转换成string类型
在 C++ 中,将 `float` 类型的数据转换为字符串类型通常使用 `std::stringstream` 或者 `std::to_string` 函数。这里有两个例子:
1. 使用 `std::stringstream`:
```cpp
#include <sstream>
#include <string>
float f = 3.14;
std::stringstream ss;
ss << f;
std::string str = ss.str();
```
在这个例子中,我们首先创建了一个 `std::stringstream` 对象 `ss`,然后通过 `<<` 运算符将 `f` 的值插入到流中,最后用 `str()` 函数获取并存储为字符串。
2. 使用 `std::to_string` (C++11及以后):
```cpp
#include <iostream>
#include <string>
float f = 3.14;
std::string str = std::to_string(f);
```
这个方法更简洁,直接将浮点数转换为字符串。
C++如何将string类型转换成char类型
在C++中,将`std::string`类型转换为`char`类型通常有两种方式:
1. **直接访问字符**:
如果字符串只包含单个字符,你可以通过索引操作符[]获取第一个字符,它会被隐式转换为`char`。例如:
```cpp
std::string str = "a";
char c = str[0]; // c现在是字符'a'
```
2. **使用`c_str()`函数**:
对于更一般的情况,可以使用`std::string`的`c_str()`成员函数返回一个指向常量字符数组的指针,然后取指针所指向的元素。但这不会复制整个字符串,只是提供了一个读取原始字符的通道:
```cpp
std::string str = "Hello, world!";
char* cStr = str.c_str(); // 注意*cStr是一个常量字符指针
char c = *cStr; // 取得第一个字符'h'
```
**注意**: `c_str()`返回的是一个`const char*`,如果你想改变字符串内容,需要谨慎处理,因为它实际上是原地修改字符串的。
阅读全文