C 库 - strcspn() 函数



C 库的 strcspn() 函数接受两个指针变量作为参数,计算初始段(str1)的长度,并且该段完全由不在 str2 中的字符组成。

通常,它用于查找给定字符串的长度,并返回从开头开始的字符数。

语法

以下是 C 库 strcspn() 函数的语法:

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

参数

此函数接受以下参数:

  • str1 - 这是要扫描的主 C 字符串。

  • str2 - 这是一个包含与 str1 匹配的字符列表的字符串。

返回值

此函数返回字符串 str1 的初始段的长度,该段不包含字符串 str2 中的任何字符。

示例 1

以下 C 库程序说明了 strcspn() 函数如何检查字符串中的第一个不匹配字符。

#include <stdio.h>
#include <string.h>

int main () {
   int len;
   // Intializing string(Unmatched Characters)
   const char str1[] = "Tutorialspoint";
   const char str2[] = "Textbook";

   len = strcspn(str1, str2);

   printf("First matched character is at %d\n", len + 1);
   
   return(0);
}

输出

以上代码产生以下结果:

First matched character is at 10

示例 2

我们使用 strcspn() 方法来显示匹配的字符。

#include <stdio.h>
#include <string.h>

int main() {
   int size;

   // Intializing string(Matched Characters)
   char str1[] = "tutorialspoint";
   char str2[] = "tutorial"; 
    
   // Using strcspn() to 
   size = strcspn(str1, str2);
    
   printf("The unmatched characters before the first matched character: %d\n", size);
   return 0;
}

输出

以上代码产生以下结果:

The unmatched characters before the first matched character: 0

示例 3

这里,我们使用 strcspn() 函数确定不包含给定集合中任何字符的初始段的长度。

#include <stdio.h> 
#include <string.h> 
  
int main() {  
   char str1[] = "Welcome to Tutorialspoint Community";  
   char str2[] = "point";  
  
   size_t len = strcspn(str1, str2); 
   // Display the output 
   printf("The length of the initial segment of str1 that does not contain any characters from str2 is: %zu\n", len);  
   return 0;  
}  

输出

以上代码产生以下结果:

The length of the initial segment of str1 that does not contain any characters from str2 is: 4
广告