【C++】C++中的assign函数详解

 目录

一.assign函数是什么

二.assign函数怎么用


一.assign函数是什么

在C++中, assign  是  std::string  类的一个成员函数,用于给字符串对象赋值,可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string  的  assign  函数有多个重载版本,允许不同的赋值方式。

基本用法

以下是  std::string  类  assign  函数的一些常见用法:

1. 替换为另一个字符串:

std::string str1;
std::string str2 = "Hello World";
str1.assign(str2); // str1 现在包含 "Hello World"

2. 替换为字符串的一部分:

std::string str = "Hello World";
std::string part;
part.assign(str, 6, 5); // part 现在包含 "World" (从索引6开始,长度为5)

3. 替换为字符的重复序列:

std::string repeated;
repeated.assign(10, 'a'); // repeated 现在包含 "aaaaaaaaaa"

函数原型

以下是  std::string::assign  的几种函数原型:

 void assign(const std::string& str); 
 void assign(const std::string& str, size_type pos, size_type len = npos); 
 void assign(const char* s, size_type n); 
 void assign(const char* s); 
 void assign(size_type n, char c); 

参数说明

第一个版本接受一个  std::string  对象作为参数,将当前字符串对象的内容替换为传入字符串的内容。

第二个版本接受一个  std::string  对象、一个起始位置  pos  和一个长度  len  作为参数,将当前字符串对象的内容替换为传入字符串从  pos  开始的  len  个字符的子串。如果  len  被设置为  std::string::npos (这是  std::string  类的一个特殊值,表示直到字符串的末尾),则子串将从  pos  开始一直到传入字符串的末尾。

第三个和第四个版本接受一个C风格的字符串  s  和一个长度  n  或者整个字符串,将当前字符串对象的内容替换为C字符串的前  n  个字符或整个字符串。

最后一个版本接受一个字符  c  和一个数量  n ,将当前字符串对象的内容替换为字符  c  重复  n  次的序列。

二.assign函数怎么用

示例代码

#include <iostream>
#include <string>

int main() {
    std::string original = "Original string";
    std::string copy;
    
    // 完全赋值
    copy.assign(original);
    std::cout << "Assigned string: " << copy << std::endl;

    // 部分赋值
    copy.assign(original, 5, 6); // 从索引5开始,长度为6
    std::cout << "Assigned substring: " << copy << std::endl;

    // 重复字符赋值
    copy.assign(10, '*');
    std::cout << "Assigned repeated characters: " << copy << std::endl;

    return 0;
}

使用  assign  方法可以灵活地对  std::string  对象进行赋值操作,无论是整体替换,部分替换,还是创建重复字符的序列。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员赵大宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值