使用assign()函数把char数组给std::string类型数据赋值
时间: 2024-02-06 11:10:15 浏览: 118
可以使用 `assign()` 函数来将 `char` 数组赋值给 `std::string` 类型数据。`assign()` 函数的语法如下:
```
string& assign (const char* s);
```
其中,`s` 是一个指向 C 风格字符串的指针,它将用来赋值给 `std::string` 类型数据。下面是一个示例:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
char myString[] = "Hello, world!";
string str;
str.assign(myString);
cout << str << endl; // 输出:Hello, world!
return 0;
}
```
在这个示例中,首先定义了一个 `char` 数组 `myString`,并将其初始化为 "Hello, world!"。然后定义了一个空的 `std::string` 类型数据 `str`,并使用 `assign()` 函数将 `myString` 赋值给 `str`。最后,使用 `cout` 将 `str` 输出到屏幕上。
相关问题
assign() 函数来将 char 数组赋值给 std::string 类型数据 合理吗
是合理的。std::string 类型数据支持通过 assign() 函数将 char 数组赋值给它们。assign() 函数可以从一个字符串、另一个 std::string 对象、一个字符数组、一个指向字符数组的指针或者一个子字符串中复制字符到 std::string 对象中。因此,如果你想将一个 char 数组赋值给 std::string 对象,可以使用 assign() 函数,例如:
```cpp
char myCharArray[] = "Hello, World!";
std::string myString;
myString.assign(myCharArray);
```
这将创建一个名为 myString 的 std::string 对象,并将 myCharArray 数组中的字符复制到它里面。
char 数组转 std::string
可以使用string的构造函数或者assign方法将char数组转换成std::string。具体方法如下:
```c++
// 使用构造函数
char hello[] = "hello";
std::string str1(hello); // 直接将char数组作为参数传入构造函数
std::string str2 = hello; // 直接将char数组赋值给std::string对象
// 使用assign方法
char msg[] = "hello world";
std::string str3;
str3.assign(msg); // 直接将char数组作为参数传入assign方法
std::string str4;
str4.assign(msg, 5); // 将char数组的前5个字符赋值给std::string对象
```
阅读全文