您好,以下内容是关于C语言 strcspn()的问题!

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

int main()
{
int i;
char *str1 = "agfedcba";
char *str2 = "cba";

i = strcspn(str1, str2);
printf("%d\n",i);

return 0;
}

求str2 在 str1中首次出现的位置 为什么结果是0??

喵喵时光机
浏览 249回答 3
3回答

HUX布斯

size_t strcspn(const char *str,const char *strCharSet);对返回值的描述如下:These functions return the index of the first character in str that is in strCharSet.If none of the characters in str is in strCharSet, then the return value is the length of str.No return value is reserved to indicate an error.我的理解如下:这个函数的的功能是,字符串str中第一次出现的某个字符,这个字符同时存在于 strCharSet中,返回这个字符在str中的索引值。若字符串strCharSet 中,都没有一个字符和 str中的相同,则返回str的字符串长度。若无返回值则 出错。描述得可能不太清楚,举个例子(第一个参数描述为str,第二个参数描述为strCharSet ):1、strcspn( "xyzbxz", "abc" ) = 3 ,str中第一次出现 strCharSet 中存在的字符'b' ,该'b'在str里面的索引是3。所以返回值为32、strcspn("agfedcba", "cba") = 0 ,str中第一个字符'a' 在 strCharSet 存在,所以返回值为 03、strcspn( "xyzbxz", "" ) = 6 ,str中的任何一个字符,在strCharSet 都不存在一样的,所以返回str字符串的长度。

温温酱

这个函数是返回str2中任何一个字符,在str1中最先出现的位置str1中c,b,a在str2中最先出现的是a所以返回0你要找的是strstr函数,它返回str1在str2中最先出现的位置,不过这个位置是个指针

喵喔喔

功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,包括结束符NULL,返回这个字符在S1中第一次出现的位置。就是说找两个都有的字符,str2 、 str1都有a,在str1下标0就是a
打开App,查看更多内容
随时随地看视频慕课网APP