c++ char数组转字符串
时间: 2024-07-15 20:01:18 浏览: 90
在C++中,从char数组转换为string可以使用`std::string`类的构造函数或者`copy()`和`substr()`方法[^1]。这里有两个常用的方法:
1. **通过构造函数**:
```cpp
#include <iostream>
using namespace std;
int main(){
string str = "hello world!"; // 原始字符串
size_t len = str.length(); // 获取字符串长度
char c[len]; // 定义字符数组
// 使用构造函数直接转换
copy(str.begin(), str.end(), c); // 复制整个字符串到字符数组
c[len - 1] = '\0'; // 添加终止符('\0')
cout << c << endl; // 打印字符数组
}
```
2. **手动复制和截取**:
```cpp
// 或者手动复制每个字符并添加终止符
char c[str.length()];
for (size_t i = 0; i < str.length(); ++i)
c[i] = str[i];
c[str.length()] = '\0';
puts(c);
```
这两个例子都能将`str`的内容复制到`c`数组中。
相关问题
c++字符数组转字符串
可以使用C语言的库函数strcpy()将字符数组转换为字符串。
例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[20] = "Hello, world!";
char string[20];
strcpy(string, str); // 将字符数组str复制到字符串string中
printf("%s\n", string); // 输出字符串string
return 0;
}
```
运行结果:
```
Hello, world!
```
c++char数组 转 long
你可以使用 `std::stol` 函数将一个 `char` 数组转换为 `long` 型数据。这个函数可以将一个表示整数的字符串转换为对应的 `long` 值。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
char cArr[] = "12345";
long num = std::stol(cArr);
std::cout << num << std::endl;
return 0;
}
```
在上面的例子中,我们将字符数组 `"12345"` 转换为 `long` 型数据,并将其输出到控制台。请注意,`std::stol` 函数可以处理带有正负号的整数字符串,以及一些异常情况,例如非法字符。
阅读全文