您的位置:首页 > 编程语言 > C语言/C++

C语言strpbrk()函数:返回两个字符串中首个相同字符的位置

2017-05-09 10:36 381 查看
头文件:#include <include.h>

strpbrk()函数检索两个字符串中首个相同字符的位置,其原型为:
    char *strpbrk( char *s1, char *s2);

【参数说明】s1、s2要检索的两个字符串。

strpbrk()从s1的第一个字符向后检索,直到'\0',如果当前字符存在于s2中,那么返回当前字符的地址,并停止检索。

【返回值】如果s1、s2含有相同的字符,那么返回指向s1中第一个相同字符的指针,否则返回NULL。

注意:strpbrk()不会对结束符'\0'进行检索。

【函数示例】输出第一个相同字符之后的内容。

纯文本复制


#include<stdio.h>
#include<string.h>
int main(void){
char* s1 = "http://see.xidian.edu.cn/cpp/u/xitong/";
char* s2 = "see";
char* p = strpbrk(s1,s2);
if(p){
printf("The result is: %s\n",p);
}else{
printf("Sorry!\n");
}
return 0;
}

输出结果:
The result is: see.xidian.edu.cn/cpp/u/xitong/

实例:


#include<string.h>


#include<stdio.h>


int main()




...{


    char *str1="please try again,sky2098!";


    char *str2="Hello,I am sky2098,I like writing!";


    char *strtemp;


    strtemp=strpbrk(str1,str2);  //搜索进行匹配


    printf("Result is:  %s ",strtemp);


    return 0;


}

在VC++ 6.0  编译运行:



返回了str2中字符“l”在str1中位置的指针,打印出字符串“lease try again,sky2098!”。

如果str2中所有字符都没有在str1中出现过,则返回null:


#include<string.h>


#include<stdio.h>


int main()




...{


    char *str1="aaaaaaabbbbbbbcccccccc";  //str1中的任何一个字符在str2中都找不到


    char *str2="ppppkkkkmmmer";


    char *strtemp;


    strtemp=strpbrk(str1,str2);


    printf("Result is:  %s ",strtemp);


    return 0;


}

在VC++ 6.0  编译运行:



返回了空值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐