📜  C中的strpbrk()

📅  最后修改于: 2021-05-30 10:33:31             🧑  作者: Mango

此函数查找在字符串s1,在S2中指定的任何字符相匹配的第一个字符(它不包括终止空字符)。

Syntax : 
char *strpbrk(const char *s1, const char *s2)

Parameters :
s1 : string to be scanned.
s2 : string containing the characters to match.

Return Value :
It returns a pointer to the character in s1 that 
matches one of the characters in s2, else returns NULL.
// C code to demonstrate the working of
// strpbrk
#include 
#include 
  
// Driver function
int main()
{
    // Declaring three strings
    char s1[] = "geeksforgeeks";
    char s2[] = "app";
    char s3[] = "kite";
    char* r, *t;
  
    // Checks for matching character
    // no match found
    r = strpbrk(s1, s2); 
    if (r != 0)
        printf("First matching character: %c\n", *r);
    else
        printf("Character not found");
  
    // Checks for matching character
    // first match found at "e"
    t = strpbrk(s1, s3);
    if (t != 0)
        printf("\nFirst matching character: %c\n", *t);
    else
        printf("Character not found");
  
    return (0);
}

输出:

Character not found
First matching character: e

实际应用
此函数可用于彩票游戏中有人带有字母的字符串
赢得胜利的第一名,即可以在第一人称获胜的任何地方使用。

// C code to demonstrate practical application
// of strpbrk
#include 
#include 
  
// Driver function
int main()
{
    // Initializing victory string
    char s1[] = "victory";
  
    // Declaring lottery strings
    char s2[] = "a23";
    char s3[] = "i22";
    char* r, *t;
  
    // Use of strpbrk()
    r = strpbrk(s1, s2);
    t = strpbrk(s1, s3);
  
    // Checks if player 1 has won lottery
    if (r != 0)
        printf("Congrats u have won");
    else
        printf("Better luck next time");
  
    // Checks if player 2 has won lottery
    if (t != 0)
        printf("\nCongrats u have won");
    else
        printf("Better luck next time");
  
    return (0);
}

输出:

Better luck next time
Congrats u have won
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。