MFC中CString类都有哪些成员函数,分别什么作用,如何使用它们?

参考地址:https://learn.microsoft.com/zh-cn/cpp/atl-mfc-shared/reference/cstringt-class?view=msvc-170

CString 类在 MFC(Microsoft Foundation Classes)中提供了丰富的成员函数来操作和处理字符串。以下是一些主要的 CString 成员函数及其描述和用法示例:

构造函数和赋值

  • CString():默认构造函数,创建一个空的 CString 对象。
  • CString(const CString& stringSrc):拷贝构造函数,通过另一个 CString 对象初始化。
  • CString(LPCTSTR lpsz):通过 C 风格的字符串初始化。
  • CString& operator=(const CString& stringSrc):赋值操作符,将一个 CString 对象赋值给另一个。

长度和容量

  • int GetLength() const:返回字符串的长度(不包括终止字符)。
  • BOOL IsEmpty() const:检查字符串是否为空。
  • void SetLength(int nNewLength):设置字符串的长度。
  • void Empty():清空字符串。

访问元素

  • TCHAR GetAt(int i) const:返回指定位置的字符。
  • void SetAt(int i, TCHAR ch):设置指定位置的字符。

比较

  • int Compare(const CString& string) const:比较两个 CString 对象。
  • int CompareNoCase(const CString& string) const:不区分大小写地比较两个 CString 对象。
  • int Collate(const CString& string) const:使用区域设置信息比较两个 CString 对象。

连接和追加

  • CString& operator+=(const CString& string):将一个 CString 追加到当前字符串。
  • CString& Append(const CString& string):追加一个 CString 到当前字符串。
  • CString& AppendFormat(LPCTSTR format, ...):使用格式化字符串追加内容。

查找

  • int Find(TCHAR ch, int start = 0) const:查找指定字符在字符串中的位置。
  • int Find(const CString& substring, int start = 0) const:查找子串在字符串中的位置。
  • int ReverseFind(TCHAR ch) const:从字符串末尾开始查找指定字符。

替换

  • int Replace(TCHAR oldChar, TCHAR newChar):替换字符串中的所有指定字符。
  • int Replace(const CString& oldSubstring, const CString& newSubstring):替换字符串中的所有指定子串。

转换

  • LPCTSTR GetBuffer(int nMinBufLength = -1):获取指向字符串内部缓冲区的指针。
  • void ReleaseBuffer(int nNewLength = -1):释放通过 GetBuffer 获取的缓冲区。
  • BSTR AllocSysString():将 CString 转换为 BSTR(用于 COM 编程)。

格式化

  • void Format(LPCTSTR formatString, ...):格式化字符串,类似于 C 标准库中的 sprintf

其他

  • BOOL LoadString(UINT nID):从应用程序的资源文件中加载字符串。
  • void MakeUpper()void MakeLower():将字符串转换为大写或小写。
  • void TrimLeft(TCHAR chTarget = _T(' '))void TrimRight(TCHAR chTarget = _T(' ')):去除字符串左侧或右侧的指定字符(默认为空格)。
  • void Trim():去除字符串两侧的指定字符(默认为空格)。

使用示例

以下是一些 CString 成员函数的使用示例:

CString str(_T("Hello World"));// 获取字符串长度
int length = str.GetLength();// 比较字符串
if (str.Compare(_T("Hello World")) == 0) {// 字符串相同
}// 追加字符串
str.Append(_T("!"));// 查找子串位置
int pos = str.Find(_T("World"));// 替换子串
str.Replace(_T("World"), _T("MFC"));// 格式化字符串
int num = 123;
str.Format(_T("Number: %d"), num);// 转换为大写
str.MakeUpper();// 去除字符串两侧的空格
str.Trim();// 从资源文件中加载字符串(假设有一个ID为123的资源字符串)
if (str.LoadString(123)) {

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/747716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4、鸿蒙学习-@ohos.promptAction (弹窗)

创建并显示文本提示框、对话框和操作菜单。 说明 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 该模块不支持在UIAbility的文件声明处使用,即不能在UIAbility的生命周期中调用,需要在创建…

关于python中数据分析的一些函数

首先先下载numpy函数库 如果使用的pycharm软件,可在设置中下载,在Python interpreter设置里,点击号,搜索numpy点击下载即可 第一部分 1.array()函数 这是一个将类似数组的数据转为数组的函数,我们还可以控制其数组的…

【Unity】程序创建Mesh(二)MeshRenderer、光照、Probes探针、UV信息、法线信息

文章目录 接上文MeshRenderer(网格渲染器)Materials(材质)Material和Mesh对应Lighting光照Lightmapping材质中的光照 光源类型阴影全局光照Probes(探针)Ray Tracing(光线追踪)Additi…

【C++】map和set深度讲解

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握map和set容器。 > 毒鸡汤:…

【 React 】在React 项目是如何捕获错误的?

1. 是什么 在react项目中去编写组件内JavaScript代码错误会导致React的内部状态被破坏,导致整个应用崩溃,这是不应该出现的现象 作为一个框架,react也有自身对于错误的处理的解决方案 2. 如何做 为了解决出现的错误导致整个应用崩溃的问题&a…

升入理解计算机系统学习笔记

磁盘存储 磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千千兆字节,而基于RAM的存储器只能有几百或几千兆字节。不过,从磁盘上读信息的时间为毫秒级,比从DRAM读慢了10万倍,比从SRAM读慢了…

NodeJs利用腾讯云实现手机发送验证码

本文介绍如何在nodejs实现短信发送,以腾讯云的短信验证为例。 腾讯云中准备工作 首先需要腾讯云的个人或者企业认证的账号,个人会赠送一百条,企业赠送一千条,可以用于测试,地址:腾讯云短信服务。然后需要…

latex中参考文献的集中表示方式

LaTeX的参考文献比较麻烦,入手也较慢,一直以来都是运用直接法,特别死板,跟word手打比除了自动排序外没有什么优势。 换成一体机后,借着新装的texworks editor和texstudio,好好的把各种参考文献的使用方法弄明白。 最简单的——直接直接写在文档尾部 直接在把格式排好的参…

Copilot with GPT-4与文心一言4.0:AI技术的未来

Copilot with GPT-4的深度分析 Copilot with GPT-4是基于OpenAI的GPT-4模型,它是一个多功能的AI助手,能够在多种语言中进行交流和创作。GPT-4模型的强大之处在于其庞大的数据训练基础,这使得它在理解语境、生成文本以及执行复杂任务方面表现…

《Ubuntu20.04环境下的ROS进阶学习5》

一、Hector_Mapping构建二维地图 在前面我们已经介绍了如何使用激光雷达来扫描地图,如何用激光雷达来建造地图,本节我们将两者结合起来,通过Hector_Mapping功能包实现SLAM。 二、在仿真环境中进行2D SLAM 1、下载Hector_Mapping sudo apt i…

【论文阅读笔记】Attention Is All You Need

1.论文介绍 Attention Is All You Need 2017年 NIPS transformer 开山之作 回顾一下经典,学不明白了 Paper Code 2. 摘要 显性序列转导模型基于包括编码器和解码器的复杂递归或卷积神经网络。性能最好的模型还通过注意力机制连接编码器和解码器。我们提出了一个新…

【Numpy】练习题100道(26-50题)

#学习笔记# 在学习神经网络的过程中发现对numpy的操作不是非常熟悉,遂找到了Numpy 100题。 Git-hub链接 1.题目列表 26. 下面的脚本输出什么?(★☆☆) print(sum(range(5),-1)) from numpy import * print(sum(range(5),-1)) 27. 考虑一个整数向量…

怎样提升小程序日活?签到抽奖可行吗?

一、 日活运营策略 小程序应该是即用即走的,每个小程序都在用户中有自己的独特定位,可能是生活日常必备(美食、团购、商城),也可能是工作办公必备(文档、打卡、工具)。 如果你想要让自己的小程…

云计算与APP开发,如何利用云端服务提升应用性能?

随着移动应用程序(APP)的普及,如何提升应用性能成为了开发者们关注的重点之一。而云计算技术的发展为APP开发者提供了全新的解决方案。本文将探讨云计算与APP开发的结合,以及我们公司提出的解决方案,帮助开发者利用云端…

KMP 算法介绍

1. KMP 算法介绍 KMP 算法:全称叫做 「Knuth Morris Pratt 算法」,是由它的三位发明者 Donald Knuth、James H. Morris、 Vaughan Pratt 的名字来命名的。KMP 算法是他们三人在 1977 年联合发表的。 KMP 算法思想:对于给定文本串 T 与模式串 …

使用 ZipArchiveInputStream 读取压缩包内文件总数

读取压缩包内文件总数 简介 ZipArchiveInputStream 是 Apache Commons Compress 库中的一个类,用于读取 ZIP 格式的压缩文件。在处理 ZIP 文件时,编码格式是一个重要的问题,因为它决定了如何解释文件中的字符数据。通常情况下,Z…

获取iOS和Android的app下载渠道和相关参数的方式

1. iOS 1.1 Deep Link 作用:Deep Link 允许应用响应特定的链接,直接打开应用内的某个特定内容或页面。这意味着用户可以通过点击一个链接,直接跳转到应用内部的某个具体位置,而不是每次都从应用的首页开始。配置:开发…

代码随想录刷题笔记 Day 52 | 打家劫舍 No.198 | 打家劫舍 II No.213 | 打家劫舍III No.337

文章目录 Day 5201. 打家劫舍&#xff08;No. 198&#xff09;<1> 题目<2> 笔记<3> 代码 02. 打家劫舍 II&#xff08;No. 213&#xff09;<1> 题目<2> 笔记<3> 代码 03.打家劫舍III&#xff08;No. 337&#xff09;<1> 题目<2&g…

H5/微信 Video标签移动端播放问题

一、禁止/阻止/取消默认的全屏播放 亲测&#xff1a; IOS和安卓均有效 <video x5-playsinline"true"playsinline"true"webkit-playsinline"true"x-webkit-airplay"true"x5-video-orientation"portraint"><source…

工智能的迷惑是技术发展的产物

简述&#xff1a; 随着ChatGPT在全球科技舞台上掀起一股热潮&#xff0c;人工智能再次成为了人们关注的焦点。各大公司纷纷紧跟潮流&#xff0c;推出了自己的AI大模型&#xff0c;如&#xff1a;文心一言、通义千问、讯飞星火、混元助手等等&#xff0c;意图在人工智能领域占据…