Delphi String 常用字串符处理函数

本文详细整理了Delphi编程中字串处理函数从旧版本到新版本的变化,包括插入、删除、复制、转换大小写、重复字符、查找子字符等功能的对比,并提供了官方文档链接以便进一步学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Delphi 在面对跨平台开发,程序语言也改进不少,不过有些改进,让原本 Delphi 开发者有些不适应,最显注的就是字串处理函数了,原本 Pascal 语言字串起始由 1 开始,几乎是它的经典了,新版本字串由 0 开始,这个改变,让很多人不适应,也多有抱怨,虽然 Delphi 尽量保有相容性,但如果要写出一码,跨所有平台,还是建议全部采用新的写法(由0开始),才是一劳永逸的做法,下面就整理常用字串处理函数新旧对照表。

Delphi String 常用字串符处理函数:

说明旧写法(Windows 平台)由1开始新写法(跨所有平台)由0开始
插入字串Insert('str', Str, 1);Str := Str.Insert(0, 'str');
删除字串Delete(Str, 1, 1);Str := Str.Remove(0);
Str := Str.Remove(0, 1);
复制字串Str := Copy(Str, 1, 2);Str := Str.Substring(0, 2);
转成大写UpperCase(Str);Str := Str.ToUpper;
转成小写LowerCase(Str);Str := Str.ToLower;
重复字符StringOfChar('-', 15);Str := String.Cretae('-', 15);
找子字符Pos('ABC123', Str);i := Str.IndexOf('ABC123');
是这些字CharInSet(Str[1], [' ',#13]);Str.Chars[0].IsInArray([' ',#13]);
制表 龟山阿卍

 

 

 

 

 

 

 

 

 

 

先整理这些,有空再慢慢整理其它的。

可参考官方文件:

http://docwiki.embarcadero.com/RADStudio/XE8/en/Migrating_Delphi_Code_to_Mobile_from_Desktop

 

转载于:https://www.cnblogs.com/onechen/p/4555139.html

在C++中,`std::string`类提供了多种用于处理字符串的函数,其中与子字符串(substring)相关的常用方法是 `substr()`。该方法允许从一个字符串中提取指定位置和长度的子字符串。 `substr()` 函数有两个重载形式: 1. `string substr(size_t pos = 0, size_t len = npos) const;` 此版本从索引 `pos` 开始提取最多 `len` 个字的子字符串。如果未指定参数,则默认从起始位置提取到字符串末尾[^2]。 例如: ```cpp #include <iostream> #include <string> int main() { std::string str = "Hello, World!"; std::string subStr1 = str.substr(7, 5); // 提取从索引7开始的5个字,结果为 "World" std::string subStr2 = str.substr(); // 提取整个字符串,结果为 "Hello, World!" std::cout << subStr1 << std::endl; std::cout << subStr2 << std::endl; return 0; } ``` 此外,C++标准库还提供了一些其他与字符串操作相关的函数,虽然它们不属于 `std::string` 类的一部分,但在某些情况下也可能用于处理子字符串或查找子字符串的位置: - `find()`:查找子字符串首次出现的位置。 - `rfind()`:查找子字符串最后一次出现的位置。 - `find_first_of()`:查找第一个匹配给定字集合的字位置。 - `find_last_of()`:查找最后一个匹配给定字集合的字位置。 这些函数返回的是子字符串的起始索引,结合 `substr()` 可以实现更复杂的字符串处理逻辑。 ### 示例:使用 `find()` 和 `substr()` 提取子字符串 ```cpp #include <iostream> #include <string> int main() { std::string str = "This is a test string."; size_t start = str.find("test"); if (start != std::string::npos) { std::string subStr = str.substr(start, 4); // 提取 "test" std::cout << subStr << std::endl; } return 0; } ``` 除了上述方法,还可以使用迭代器来遍历和提取子字符串,或者结合正则表达式(如 `<regex>` 库)进行更复杂的模式匹配和子字符串提取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值