C++中字符串和字符数组的转化
时间: 2023-12-20 18:04:49 浏览: 224
在C++中,字符串和字符数组可以相互转化,常用的方法有以下几种:
1. 字符串转字符数组
可以使用strcpy()函数将字符串拷贝到字符数组中,例如:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string str = "Hello World";
char arr[20];
strcpy(arr, str.c_str());
cout << arr << endl;
return 0;
}
```
2. 字符数组转字符串
可以使用string类的构造函数将字符数组转化为字符串,例如:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char arr[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '\0'};
string str(arr);
cout << str << endl;
return 0;
}
```
3. 字符串转字符指针
可以使用c_str()函数将字符串转化为字符指针,例如:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello World";
const char* ptr = str.c_str();
cout << ptr << endl;
return 0;
}
```
4. 字符指针转字符串
可以使用string类的构造函数将字符指针转化为字符串,例如:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
const char* ptr = "Hello World";
string str(ptr);
cout << str << endl;
return 0;
}
```
需要注意的是,字符数组转字符串时,字符数组必须以'\0'结尾。而且,字符串转字符指针时返回的是const char*类型的指针,因为字符串是不可修改的。
阅读全文