对于strrstr函数的实现

#include<stdio.h>

char const  *my_strrstr(char const *str, char const *dst)

{

char const *ret = NULL;

char const *cur = my_strstr(str, dst);//先找一次,返回该位置的指针

while (NULL != cur)

{

ret = cur;//存放第一次查找到的指针,防止第一次查找即是最后一次查找

cur = my_strstr(cur + 1, dst);//从返回的指针指向的下一个字符开始查找

}

return ret;

}

int main()

{

char *a = "abcdabbc";

printf("%s\n", my_strrstr(a, "bc"));

return 0;

}

时间: 2024-10-08 12:22:30

对于strrstr函数的实现的相关文章

字符串函数番外篇

通常看到strrchr这个函数,人们很自然的想问库里面有没有strrstr这个函数呢??? 答案是:没有. 但是我们可以自己实现一个strrstr函数,它的功能是查找最后一次出现的子字符串,如果找打则返回这个地址,如果没找到则返回空地址. 实现方案:对于这个函数有两种实现方式. 第一种是从后向前找,第一次找到就返回这个地址. 第二种是从前向后找,用一个标签记录第一次找到的位置,然后当第二次找到时再更新这个标签,最后标签里面保存的地址就是我们要找的地址. 从后向前找: #include<stdio

长度受限的字符串函数及其他字符串函数

长度受限的字符串函数:这下函数接受一个显示的长度做参数,用于限定比较或复制的字符数,防止一些长字符串从目标数组中溢出. 三中常见的受限字符串函数: char * strncpy(char *dst,char const *src,size_t len); strncpy从src中复制len个字符到dst中,如果strlen(src)的长度小于len,则多出来的字符用NUL填补,注意,当strlen(src)大于或者等于len,strncpy不会以NUL结尾,所以使用strncpy时要慎重考虑.

有意思的字符串查找函数

通过一段时间对字符串的了解,我发现了许多有意思的字符串函数,下面我们就以常见的字符串查找函数:strchr,strrchr,strstr,strrstr为例来模拟实现这些有意思的字符串查找函数. [strchr][strrchr] 查找一个字符,有所不同的是:strchr用于查找这个字符第一次出现的位置,strrchr用于查找这个字符最后一次出现的位置.下面我们就来打开MSDN来查找这两个字符查找函数的函数原型: char *strchr(const char *string,int c) ch

关于str家族

不受限制的字符串函数,比如说strcpy.strcmp等等,我们最常用的字符串函数都是不受限制的,只是通过寻找字符串参数结尾的NULL字节来判断它的长度.那么什么是受限制的字符串函数呢?通过下面的例子我们来一起详细了解一下 strcpy: 原型:char *strcpy( char *strDestination, const char *strSource ); 这个函数把参数src字符串复制到dest参数中,在使用这个函数时需要注意,首先,必须保证目标字符数组的空间足以容纳需要复制的字符串,

empty对如下8种情况返回true

1.strrchr函数 在W3School站点上的注释如下: strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符.如果成失败,否则返回 false. 实际上,这个函数是查找某个字符,而不是查找字符串,应该参考官方文档 代码示例:$a = 'abcdef.txt'; $b = '.php'; echo strrchr($a, $b);上面的代码输出是:.txt 也就是说,如果$b是字符串,只使用第一个字符,后面的其它字符会忽略 注?php提供

php常见的坑

10.filesize缓存的问题 PHP的filesize居然会缓存(当然还有不少,这里仅用filesize举例,其它会缓存的函数,以官方文档为准)线上代码经常随机出各种问题,排查了1个月,线上加各种日志,最终发现是filesize缓存的问题,如下代码: [php] view plain copy echo filesize("a.txt"); exec("rm a.txt");  // 删除文件 echo filesize("a.txt"); 

php中的坑,你掉进去过几个?

'abc' == 0 return true 因为这是一个数字和一个字符串进行比较,PHP会把字符串转换成数字再进行比较.PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0.例如:123abc转换后应该是123,而abc则为0,0==0这当然是成立的.具体可以参考官方手册:如果比较一个整数和字符串,则字符串会被转换为整数 null和空.0,三个值的比较 在PHP中,== 会先进行类型转换,再进行对比,而===会先比较类型,如果类型不同直接返回不相等,参考如下示例  

转PHP开发时,一些常见的坑

1.strrchr函数 在W3School站点上的注释如下: strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符. 如果成失败,否则返回 false. 实际上,这个函数是查找某个字符,而不是查找字符串,应该参考官方文档 代码示例: $a = 'abcdef.txt'; $b = '.php'; echo strrchr($a, $b); 上面的代码输出是:.txt 也就是说,如果$b是字符串,只使用第一个字符,后面的其它字符会忽略 注:ph

C语言字符/字符串相关函数收藏

字符处理函数 int tolower(char ch)若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(char ch)若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') int _tolower(char ch)返回ch相应的小写字母('a'-'z') int _toupper(char ch)返回ch相应的大写字母('A'-'Z') int toascii(char c)返回c相应的ASCII 举个栗子: #include<s