The C library function strcspn() calculates the length of the number of characters before the 1st occurrence of character present in both the string.
Syntax :
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.
#include <stdio.h>
#include <string.h>
int main()
{
int size;
char str1[] = "geeksforgeeks" ;
char str2[] = "kfc" ;
size = strcspn (str1, str2);
printf ( "The unmatched characters before first matched character : %d\n" , size);
}
|
Output:
The unmatched characters before first matched character : 3
Practical Application : There can be many practical application of this function, be it word games or irregularity calculator. A simple word game is demonstrated in this article.
Rules : According to this game, 2 players play and one player initially generated a string and is asked to produce a string which has as many unmatched characters. After 1 round, player producing string with maximum unmatched characters wins.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int score1 = 0, score2 = 0, k = 0, sizen = 0, size = 0;
char player1[] = "geeks" ;
char play2[] = "" ;
while (1) {
char randoml = 'a' + (random() % 26);
play2[k++] = randoml;
size = strcspn (play2, player1);
if (size == sizen) {
score2 = size;
break ;
}
else {
sizen = size;
}
}
const char player2[] = "geeks" ;
char play1[] = "" ;
k = 0, sizen = 0;
while (1) {
char randoml = 'a' + (random() % 26);
play1[k++] = randoml;
size = strcspn (play1, player2);
if (size == sizen) {
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);
}
|
Output:
Match Drawn!! Score : 2
Last Updated :
23 Dec, 2017
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...