还有一些很有用的函数,当然我们可能就不展开说我们到底要怎样把它们写出来.我们先来看这对strchr和strrchr函数,chr的意思是search char.strchr做的事情是从左边开始寻找c第一次出现的位置.它返回的是指针.strrchr表示说我要从右边开始找.如果找到就返回一个指针,这个指针指向你要找的那个字符.
这两个函数有两个很有意思的套路.第一个是找出这个字符第二个出现的位置.
我们运行看到结果是llo.也就是说它返回了一个指向第一个l的指针.然后我们从第一个l开始把这个东西当作一个字符串来输出.我们可以把这个代码加点东西:
我们从p+1开始寻找l,于是我们得到了第二个l,输出结果为lo.如果r就是反过来.这是第一个小套路.
第二个小套路是,如果我们想要做的事情是这样,我们要找到这个l,我们要把这个l后面的东西去复制到另外一个字符串里头去.所以我们需要做的事情是说,我们另外有一个t,我们需要另外一个东西了,所以malloc.malloc什么东西呢,我们现在还不知道它有多大,所以我们假设我们要把p以后的东西都拷过去.代码如下:
我们可以看到结果为llo.还有,假如我们想要的是说,我们找到这个l,我们想要前面这一段, 这时候要怎么做.emmm,有一个小技巧,这小技巧是这么干的:
这段代码做的事情是,我们找到了llo,然后我们让*p等于0,即让0填充p原来所指的第一个l的位置,那么s字符串就只有前面的he,我们的目的就达成了.然后我们把这个he拷贝到t里面去.当然,一般做完这个事情我们还要做一件事情,程序里没有写,就是*p=c,把l再写回指针p的那个位置,把s恢复回来.
还有一对很有意思的函数:
strstr是用来在一个字符串当中寻找另一个字符串的.strcasestr的作用是基于上一个函数,在寻找的过程中它会忽略大小写来做一个寻找.这两个函数我们不展开,大家有需要的时候再去自行使用好了.