使用assign()函数把char数组给std::string类型数据赋值
时间: 2024-02-06 13:10:15 浏览: 31
可以使用 `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 数组中的字符复制到它里面。
使用assign()函数给std::string类型数据赋值
使用assign()函数可以给std::string类型数据赋值,其函数原型如下:
```
void assign(const char* s);
void assign(const char* s, size_t n);
void assign(const std::string& str);
void assign(const std::string& str, size_t pos, size_t n = std::string::npos);
void assign(size_t n, char c);
template <class InputIterator>
void assign(InputIterator first, InputIterator last);
```
其中,对于C风格字符串的赋值,可以使用第一种和第二种形式。比如:
```
std::string str;
str.assign("hello world");
```
对于已有的std::string类型数据的赋值,可以使用第三种和第四种形式。比如:
```
std::string str1 = "hello";
std::string str2 = "world";
str1.assign(str2);
```
对于重复字符的赋值,可以使用第五种形式。比如:
```
std::string str;
str.assign(5, 'a');
```
对于迭代器范围内的赋值,可以使用第六种形式。比如:
```
std::string str;
std::vector<char> vec = {'h', 'e', 'l', 'l', 'o'};
str.assign(vec.begin(), vec.end());
```