string搜索操作

    string类提供了6个不同的搜索函数,如下:

s.find(args) 查找s中args第一次出现的位置;

s.rfind(args) 查找s中args最后一次出现的位置;

s.find_first_of(args) 在s中查找args中任何一个字符第一次出现的位置;

s.find_last_of(args) 在s中查找args中任何一个字符最后一次出现的位置;

s.find_first_not_of(args) 在s中查找第一个不在args中的字符;

s.find_last_not_of(args) 在s中查找最后一个不在args中的字符;

args的形式可以为以下任何一种:

c,pos 从s中位置pos开始查找字符c  pos默认为0

s2,pos   从s中位置pos开始查找字符串s2  pos默认为0

cp,pos 从s中位置pos开始查找指针cp指向的以空字符结尾的C风格字符串  pos默认为0

cp,pos,n 从s中位置pos开始查找指针cp指向的数组的前n个字符  posn无默认值

### 不同编程语言中查找子串的方法 #### Python 中的 `index()` 和 `find()` Python 提供了两种主要方法用于在字符串中查找子串:`index()` 和 `find()`。这两种方法都可以用来定位子串在母串中的起始位置。 当使用 `index()` 方法时,如果未找到目标子串,则会抛出异常;而 `find()` 方法则更为安全,在找不到子串的情况下返回 `-1`[^1]: ```python main_string = "hello world" substring = "world" position_index = main_string.index(substring) print(f"Using index(): {position_index}") position_find = main_string.find(substring) print(f"Using find(): {position_find}") ``` #### JavaScript 的 `indexOf()` 对于 JavaScript 来说,`indexOf()` 是一种常用的手段来实现相同的功能——即寻找某个特定模式第一次出现的位置。此函数同样会在不存在匹配项的时候给出 `-1` 作为结果[^2]: ```javascript const mainString = "hello world"; const substring = "world"; const positionIndexOf = mainString.indexOf(substring); console.log(`Using indexOf(): ${positionIndexOf}`); ``` #### C/C++ 中的 `strstr()` 而在C或C++这样的低级语言里,可以借助标准库提供的 `strstr()` 函数来进行相似的操作。该函数接收两个参数并尝试在一个较长的字符序列(称为源串)内发现另一个较短的字符序列(称为模板)。成功时返回指向首次出现处的新指针,失败则返回 `NULL`[^4]: ```c #include <stdio.h> #include <string.h> int main(){ const char *sourceStr = "hello world"; const char *patternStr = "world"; char *resultPtr = strstr(sourceStr, patternStr); if(resultPtr != NULL){ printf("Pattern found at offset %ld\n", resultPtr - sourceStr); }else{ printf("Pattern not found.\n"); } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值