当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 strcspn()用法及代码示例


C库函数strcspn()计算两个字符串中第一次出现的字符之前的字符数长度。句法:

strcspn(const char *str1, const char *str2)

参数:
str1 :The Target string in which search has to be made.
str2 :Argument string containing characters
to match in target string.

返回值:
This function returns the number of characters before the 1st occurrence
of character present in both the string.
// C code to demonstrate the working of 
// strcspn() 
#include <stdio.h> 
#include <string.h> 
  
int main() 
{ 
  
    int size; 
  
    // initializing strings 
    char str1[] = "geeksforgeeks"; 
    char str2[] = "kfc"; 
  
    // using strcspn() to calculate initial chars 
    // before 1st matching chars. 
    // returns 3 
    size = strcspn(str1, str2); 
  
    printf("The unmatched characters before first matched character:  %d\n", size); 
}

输出:

The unmatched characters before first matched character: 3

实际应用:该函数可以有许多实际应用,无论是文字游戏还是不规则计算器。本文演示了一个简单的文字游戏。


规则:根据此游戏,有2位玩家参加比赛,其中1位玩家最初生成了一个字符串,并被要求生成一个字符串,该字符串包含许多不匹配的字符。 1回合后,产生最多字符的字符串的玩家获胜。

// C code to demonstrate the application of 
// strcspn() 
  
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
  
int main() 
{ 
  
    int score1 = 0, score2 = 0, k = 0, sizen = 0, size = 0; 
  
    // initial Round1 strings 
    char player1[] = "geeks"; 
    char play2[] = ""; 
  
    while (1) { 
        // generating random character 
        char randoml = 'a' + (random() % 26); 
        play2[k++] = randoml; 
  
        size = strcspn(play2, player1); 
  
        if (size == sizen) { 
            // if the character is present, break 
            score2 = size; 
            break; 
        } 
        else { 
            sizen = size; 
        } 
    } 
  
    // initial Round2 strings 
    const char player2[] = "geeks"; 
    char play1[] = ""; 
    k = 0, sizen = 0; 
  
    while (1) { 
        // generating random character 
        char randoml = 'a' + (random() % 26); 
        play1[k++] = randoml; 
  
        size = strcspn(play1, player2); 
  
        if (size == sizen) { 
  
            // if the character is present, break 
            score1 = size; 
            break; 
        } 
        else { 
            sizen = size; 
        } 
    } 
  
    if (score1 > score2) 
        printf("Player 1 won!! Score:%d", score1); 
    else if (score2 > score1) 
        printf("Player 2 won!! Score:%d", score2); 
    else
        printf("Match Drawn!! Score:%d", score1); 
}

输出:

Match Drawn!! Score:2



相关用法


注:本文由纯净天空筛选整理自Vaishnavi tripathi大神的英文原创作品 strcspn() in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。