为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

喵喵时光机 2021-11-01 10:06:08
#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??
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

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。所以返回值为3
2、strcspn("agfedcba", "cba") = 0 ,str中第一个字符'a' 在 strCharSet 存在,所以返回值为 0
3、strcspn( "xyzbxz", "" ) = 6 ,str中的任何一个字符,在strCharSet 都不存在一样的,所以返回str字符串的长度。



查看完整回答
反对 回复 2021-11-06
?
温温酱

TA贡献1752条经验 获得超4个赞

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

查看完整回答
反对 回复 2021-11-06
?
喵喔喔

TA贡献1735条经验 获得超5个赞

功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,包括结束符NULL,返回这个字符在S1中第一次出现的位置。
就是说找两个都有的字符,str2 、 str1都有a,在str1下标0就是a

查看完整回答
反对 回复 2021-11-06
  • 3 回答
  • 0 关注
  • 248 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信