当前位置: 首页 > news >正文

【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开始,长度为6std::cout << "Assigned substring: " << copy << std::endl;// 重复字符赋值copy.assign(10, '*');std::cout << "Assigned repeated characters: " << copy << std::endl;return 0;
}

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

 

相关文章:

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

目录 一.assign函数是什么 二.assign函数怎么用 一.assign函数是什么 在C中&#xff0c; assign 是 std::string 类的一个成员函数&#xff0c;用于给字符串对象赋值&#xff0c;可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string 的 assign 函…...

Hadoop3:MR程序的数据倾斜问题处理

一、数据倾斜 什么是数据倾斜&#xff1f; 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据&#xff0c;分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜&#xff1f; 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…...

Mojo 编程语言简介

Mojo 是一种新兴的编程语言&#xff0c;旨在结合 Python 的易用性与 C 的高性能&#xff0c;特别是面向高性能计算、机器学习和系统编程等领域。Mojo 的设计目标是提供一种既具备高级语言灵活性&#xff0c;又能够高效运行的编程工具。 主要特性 高性能&#xff1a;通过高级编…...

【有效验证】解决SQLyog连接MYSQL的错误 1251 - Client does not support

目录 一、原因分析&#xff1a; 二、进入到mysql 三、查看当前加密方式 四、更改加密方式 五、查看是否成功 前言&#xff1a;使用一个开源软件使用sqlyog、navcat都报1251错误&#xff0c;网上都是提示升级客户端&#xff0c;还有一种就是修改mysql配置。本文就是修改配置…...

Keka for Mac v1.4.3 中文下载 解压/压缩工具

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试1、打开软件2、文件访问权限修改3、访达扩展 安装完成&#xff01;&#xff…...

springboot3.2 RedisCacheManager配置

1、启用并配置 添加 EnableCaching 注解 并配置 RedisCacheManager package config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import c…...

IP地址与MAC地址区别

MAC地址和IP地址是现代计算机网络中两个非常重要的概念&#xff0c;它们各自承担着不同的角色和功能。 MAC地址&#xff08;Media Access Control Address&#xff09; 一种物理地址&#xff0c;它是烧录在网卡或接口上的&#xff0c;具有全球唯一性&#xff0c;一般不能被改…...

Linux chmod 命令简介

在Linux中&#xff0c;chmod 命令用于改变文件或文件夹的访问权限。要改变一个文件夹及其内部所有文件和子文件夹的权限&#xff0c;您可以使用递归选项 -R。以下是一些常用的 chmod 命令示例&#xff1a; 给所有用户读、写和执行权限&#xff1a; chmod -R 777 /path/to/direc…...

【LeetCode】删除排序链表中的重复元素 II

目录 一、题目二、解法完整代码 一、题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5] 示例 …...

Pandas使用 `iloc` 和 `loc` 常见用法汇总

文章目录 df.iloc 常见用法1. 获取特定行2. 获取特定列3. 获取特定的行和列4. 获取行切片5. 获取列切片6. 获取特定的行和列切片 df.loc 常见用法1. 获取特定行2. 获取特定列3. 获取特定的行和列4. 获取行切片5. 获取列切片6. 获取特定的行和列切片 示例代码 df.iloc 和 df.lo…...

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生&#xff0c;大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…...

Windows 32 汇编笔记(二):使用 MASM

一、Win32 汇编源程序的结构 ; Hello.asm ; 使用 Win32 ASM 写的 Hello, world 程序 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>…...

手机和电脑通过TCP传输(一)

一.工具 手机端&#xff1a;网络调试精灵 电脑端&#xff1a;野火网络调试助手 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信…...

Sentinel规则持久化Push模式两种实现方式

文章目录 sentinel持久化push推模式微服务端的实现具体实现源码分析读数据源写数据源的实现 微服务端解析读数据源流程 修改源码的实现官方demo修改源码实现配置类flowauthoritydegreadparamsystemgateway修改源码 测试补充 前置知识 pull模式 sentinel持久化push推模式 pull拉…...

Spring Boot 中使用 Resilience4j 实现弹性微服务的简单了解

1. 引言 在微服务架构中&#xff0c;服务的弹性是非常重要的。Resilience4j 是一个轻量级的容错库&#xff0c;专为函数式编程设计&#xff0c;提供了断路器、重试、舱壁、限流器和限时器等功能。 这里不做过多演示&#xff0c;只是查看一下官方案例并换成maven构建相关展示&…...

Hadoop3:MR程序压测实验

一、环境要求 内存&#xff1a;128G CPU&#xff1a;32C 磁盘&#xff1a;8T 注&#xff1a;一个虚拟机不超过150G磁盘尽量不要执行这段代码 二、案例 1、需求 使用Sort程序评测MapReduce 2、操作步骤 1、使用RandomWriter来产生随机数&#xff0c;每个节点运行10个Map任…...

初学者如何通过建立个人博客盈利

建立个人博客不仅能让你在网上表达自己&#xff0c;还能与他人建立联系。通过博客&#xff0c;可以创建自己的空间&#xff0c;分享想法和故事&#xff0c;并与有相似兴趣和经历的人交流。 本文将向你展示如何通过建立个人博客来实现盈利。你将学习如何选择博客主题、挑选合适…...

构建稳健性:如何在Gradle中配置构建失败时的行为

构建稳健性&#xff1a;如何在Gradle中配置构建失败时的行为 在软件开发过程中&#xff0c;构建失败是不可避免的。然而&#xff0c;如何优雅地处理构建失败并从中恢复&#xff0c;是提高开发效率和软件质量的关键。Gradle&#xff0c;作为一款强大的构建工具&#xff0c;提供…...

大语言模型-基础及拓展应用

一、基础模型 1、Transformer 2、bert 3、gpt 二、大语言模型 三、句子向量 四、文档解析 1、通用解析 2、docx解析 3、 pdf解析 4、pptx解析 五、向量数据库...

STM32使用Wifi连接阿里云

目录 1 实现功能 2 器件 3 AT指令 4 阿里云配置 4.1 打开阿里云 4.2 创建产品 4.3 添加设备 5 STM32配置 5.1 基础参数 5.2 功能定义 6 STM32代码 本文主要是记述一下&#xff0c;如何使用阿里云物联网平台&#xff0c;创建一个简单的远程控制小灯示例。 完整工程&a…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

Linux-进程间的通信

1、IPC&#xff1a; Inter Process Communication&#xff08;进程间通信&#xff09;&#xff1a; 由于每个进程在操作系统中有独立的地址空间&#xff0c;它们不能像线程那样直接访问彼此的内存&#xff0c;所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...