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.kler.cn/a/273567.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

V-JEPA模型,非LLM另外的选择,AGI的未来:迈向Yann LeCun先进机器智能(AMI)愿景的下一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Android14之HIDL报错:Invalid sparse file format at header magic(一百九十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

RHCE——三:Web服务器(内网穿透实验)

RHCE—第三天:Web服务器 一、WWW简介1、常见Web服务程序介绍:2、服务器主机3、主要数据4、浏览器5、网址及HTTP简介URL 二、部署Nginx1、常用命令systemctl系列nginx自带命令nginx配置文件 2、实验操作实验1( 快速搭建网站)实验2&…

Auto-DataProcessing:一组让制作数据集变轻松的脚本

前言 最近跟同学参加了个比赛,我负责Object-Detection的技术实现,需要从网上扒大量的数据(主办方每种识别物就给了一张demo🤣),发现数据准备是一个真的是一个非常重要但又耗时耗力的过程。对我来说,给我一类待识别的标…

Halcon 点云处理流程(点云分割、连通筛选、模型位姿变换、三角化)

Halcon 点云处理(点云分割、连通筛选、模型位姿变换、三角化) 链接:https://pan.baidu.com/s/1QiIt_Y55IaO3l4kT2ljYTA 提取码:4fni * 1.读取点云数据 ****************

前后端分离项目部署服务器教程--实践成功

文章目录 项目介绍流程1租界云服务2通过远程软件连接服务器3部署前后端代码停止功能文件 环境配置1.安装jdk2.安装Nginx3.安装mysql数据库 花了将近一天部署前后端的项目,写一个日志记录一下,话说孰能生巧。明天把服务器恢复初始在部署一下。 项目介绍 …

Git——GitHub远端协作详解

目录 Git&GitHub1、将内容Push到GitHub上1.1、在GitHub上创建新项目1.2、upstream1.3、如果不想要相同的分支名称 2、Pull下载更新2.1、Fetch指令2.2、Fetch原理2.3、Pull指令2.4、PullRebase 3、为什么有时候推不上去3.1、问题复现3.2、解决方案一:先拉再推3.3…

Apache Doris 如何基于自增列满足高效字典编码等典型场景需求

自增列(auto_increment)是数据库中常见的一项功能,它提供一种方便高效的方式为行分配唯一标识符,极大简化数据管理的复杂性。当新行插入到表中时,数据库系统会自动选取自增序列中的下一个可用值,并将其分配…

MySql安装与卸载—我耀学IT

1.MySql安装 打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe”。 选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义&…

小程序云开发(十六):JavaScript基础

🔗 运行环境:小程序云开发 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 &#x1f497…

2025张宇考研数学基础36讲,视频百度网盘+PDF

一、张宇老师全年高数体系(听课用书指南) 25张宇全程: docs.qq.com/doc/DTmtOa0Fzc0V3WElI 复制粘贴在浏览器上打开,就可以看到2025张宇的全部的啦! 一般来说我们把考研数学划分为3-4个阶段,分别是基础阶…

研究人员发现 OpenAI ChatGPT、Google Gemini 的漏洞

自 OpenAI 推出 ChatGPT 以来,生成式 AI 聊天机器人的数量及其在企业中的采用率在一年多时间里呈爆炸式增长,但网络安全专业人士的担忧也随之增加,他们不仅担心威胁组织对新兴技术的使用,还担心大型网络的安全性及模型&#xff08…

Studio 3T 2024.2 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询

Studio 3T 2024.2 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询 The professional GUI, IDE and client for MongoDB 请访问原文链接:https://sysin.org/blog/studio-3t/,查看最新版。原创作品&#xff…

Ubuntu Desktop - lock screen (锁屏)

Ubuntu Desktop - lock screen [锁屏] 1. System Settings -> Security & Privacy (安全和隐私)2. System Settings -> Keyboard -> Shortcuts -> System3. LockReferences 1. System Settings -> Security & Privacy (安全和隐私) 使用 Putty 远程登录…

Day69:WEB攻防-Java安全JWT攻防Swagger自动化算法签名密匙Druid泄漏

目录 Java安全-Druid监控-未授权访问&信息泄漏 黑盒发现 白盒发现 攻击点 Java安全-Swagger接口-导入&联动批量测试 黑盒发现 白盒发现 自动化发包测试 自动化漏洞测试 Java安全-JWT令牌-空算法&未签名&密匙提取 识别 JWT 方式一:人工识…

CTF题型 SSTI(1) Flask-SSTI-labs 通关 题记

CTF题型 SSTI(1) Flask-SSTI-labs 通关 题记 文章目录 CTF题型 SSTI(1) Flask-SSTI-labs 通关 题记前记获取键值或下标的方式获取属性的方式 Level 1 no wafLevel 2 bl[\{\{]Level 3 no waf and blindLevel 4 bl[[, ]]获取键值或下标 Level 5 bl[\, "]Level 6 bl[_]Level …

爬虫逆向实战(36)-某建设监管平台(RSA,魔改)

一、数据接口分析 主页地址:某建设监管平台 1、抓包 通过抓包可以发现网站首先是请求了一个/prod-api/mohurd-pub/vcode/genVcode的接口,用于获取滑块验证码的图片 滑块验证之后,请求了/prod-api/mohurd-pub/dataServ/findBaseEntDpPage这…

了解常用开发模型 -- 瀑布模型、螺旋模型、增量与迭代、敏捷开发

目录 瀑布模型 开发流程 开发特征 优缺点 适用场景 螺旋模型 开发流程 开发特征 优缺点 适用场景 增量与迭代开发 什么是增量开发?什么是迭代开发? 敏捷开发 什么是敏捷开发四原则(敏捷宣言)? 什么是 s…

Vue3学习日记 Day4 —— pnpm,Eslint

注:此课程需要有Git的基础才能学习 一、pnpm包管理工具 1、使用原因 1.1、速度快,远胜过yarn和npm 1.2、节省磁盘空间 2、使用方式 2.1、安装方式 npm install -g pnpm 2.2、创建项目 pnpm create vue 二、Eslint配置代码风格 1、环境同步 1、禁用Pret…

软考真题详解-系统架构设计师-计算机基础知识(1)

题目1:计算机系统中硬件层之上的软件通常按照三层来划分,如下图所示,图中①②③分别表示(1)。 A.操作系统、应用软件和其他系统软件 B.操作系统、其他系统软件和应用软件 C.其他系统软件、操作系统和应用软件 D.应…
最新文章