C库函数 strcspn() 计算两个字符串中第一次出现字符之前的字符数长度。 语法:
null
strcspn(const char *str1, const char *str2) Parameters: str1 : The Target string in which search has to be made. str2 : Argument string containing characters to match in target string. Return Value: 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" , size); } |
输出:
The unmatched characters before first matched character : 3
实际应用: 这个函数可以有很多实际应用 文字游戏或不规则计算器 .本文演示了一个简单的文字游戏。
规则: 根据这个游戏,两个玩家玩,一个玩家最初生成一个字符串,并被要求生成一个包含尽可能多的不匹配字符的字符串。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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END