strrchr()函数 和 string::npos

strrchr() 函数

strrchr()函数:
strrchr()函数的作用是:
    查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符;
    如果未能找到指定字符,那么函数将返回False。

实验代码:

 1 #include <iostream>                                                                                                                                           
 2 #include <string.h>
 3 #include <stdio.h> 
 4 #include <stdint.h>
 5 using namespace std;
 6                       
 7 int main()            
 8 {                     
 9     char str[] = "ddddefg";
10     char *p = strrchr(str, 'd');
11     printf("%s\n", p);
12     return 0;         
13 }    

运行结果:

➜  t6 ./test1
defg


分析:

以上找到了d所在的位置,应该是d最后一次出现的位置的指针。

 

string::npos

npos可以表示string的结束位置,是string::type_size 类型的,也就是find()返回的类型。find函数在找不到指定值得情况下会返回string::npos。举例如下计算字符串中含有的不同字符的个数)

#include <iostream>                        
#include <string.h>                        
#include <stdio.h>                         
#include <stdint.h>                        
using namespace std;                       
                                           
int main()                                 
{                                          
    string b = "abcdefghigklmn";           
    auto i1 = b.find("c");                 
    auto i2 = b.find("hi");                
    cout<<"i1: "<<i1<<"  i2    "<<i2<<endl;                                     
    return 0;                              
}         

运行结果:

➜  t6 ./test1
i1: 2  i2    7


在字符串abcdefghigklmn的2号位置发现了c,在7号位置发现了hi

 

posted @ 2020-09-04 16:17  熊鑫xxx1x  阅读(217)  评论(0)    收藏  举报