strspn 和strcspn

简介: 1、strcspn头文件:#inclued定义函数:size_t strcspn(const char *s, const char * reject);函数说明:strcspn()从参数s 字符串的开头计算连续的字符, 而这些字符都完全不在参数reject 所指的字符串中.
1、strcspn

头文件:#inclued<string.h>

定义函数:size_t strcspn(const char *s, const char * reject);

函数说明:strcspn()从参数s 字符串的开头计算连续的字符, 而这些字符都完全不在参数reject 所指的字符串中. 简单地说, 若strcspn()返回的数值为n, 则代表字符串s 开头连续有n 个字符都不含字符串reject 内的字符.

返回值:返回字符串s 开头连续不含字符串reject 内的字符数目.

范例
#include <string.h>
main()
{
    char *str = "Linux was first developed for 386/486-based pcs. ";
    printf("%d\n", strcspn(str, " "));
    printf("%d\n", strcspn(str, "/-"));
    printf("%d\n", strcspn(str, "1234567890"));
}

执行结果:
5 //只计算到" "的出现, 所以返回"Linux"的长度
33 //计算到出现"/"或"-", 所以返回到"6"的长度
30 // 计算到出现数字字符为止, 所以返回"3"出现前的长度
 
 
2、strspn
表头文件 #include<string.h>
  定义函数 size_t strspn (const char *s,const char * accept);
  函数说明 strspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符。
  返回值 返回字符串s开头连续包含字符串accept内的字符数目。
  范例
  1 #include <string.h>
  2 #include <stdio.h>
  3 main()
  4 {
  5 char *str="Linux was first developed for 386/486-based pcs.";
  6 printf("%d\n",strspn(str,"Linux"));
  7 printf("%d\n",strspn(str,"/-"));
  8 printf("%d\n",strspn(str,"1234567890"));
  9 }
  运行结果:
  5  //包含linux字符切
  0  // 开始不包含
  0   //开始不包含

摘自http://blog.sina.com.cn/s/blog_690878d501017v93.html
目录
相关文章
|
7月前
|
编解码 前端开发 容器
Web进阶:Day3 移动端特点、百分比布局、Flex布局、实战演练
Web进阶:Day3 移动端特点、百分比布局、Flex布局、实战演练
154 0
|
算法 安全 Java
Gradle(10)一篇文章看懂 v1/v2/v3 签名机制
Gradle(10)一篇文章看懂 v1/v2/v3 签名机制
703 0
Gradle(10)一篇文章看懂 v1/v2/v3 签名机制
|
Web App开发 tengine 网络协议
HTTP3 RFC标准正式发布,QUIC会成为传输技术的新一代颠覆者吗?
HTTP3 RFC标准正式发布,QUIC会成为传输技术的新一代颠覆者吗?
627 0
HTTP3 RFC标准正式发布,QUIC会成为传输技术的新一代颠覆者吗?
|
前端开发 容器
flex实现左右布局中按钮溢出隐藏效果
flex实现左右布局中按钮溢出隐藏效果
239 0
|
域名解析 缓存 网络协议
HttpClient/HttpURLConnection + HttpDns最佳实践
在Android端如果OkHttp作为网络请求框架,由于其提供了自定义DNS服务接口,可以很优雅地结合HttpDns,相关实现可参考:[HttpDns+OkHttp最佳实践](https://help.aliyun.com/document_detail/52008.html?spm=5176.product30100.6.585.USrgj7)。 如果您使用`HttpClient`或`Http
3105 0
|
Android开发 安全 数据格式
Android LocalBroadcastManager 的使用总结
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/53105494 本文出自【赵彦军的博客】 前言 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
1282 0
|
缓存 前端开发 JavaScript
Android 拦截WebView加载URL,控制其加载CSS、JS资源
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/49517537 绪论 最近在项目中有了这样一个需求,我们都知道WebView加载网页可以缓存,但是web端想让客服端根据需求来缓存网页,也就是说web端在设置了http响应头,我根据这个头来拦截WebView加载网页,去执行网络加载还是本地缓存加载。
1118 0
|
Android开发
【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | InMemoryDexClassLoader 类加载器脱壳点总结 )
【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | InMemoryDexClassLoader 类加载器脱壳点总结 )
387 0
|
Android开发 网络架构
Android笔记:Android设备获取公网IP
Android笔记:Android设备获取公网IP
456 0
|
缓存 安全 网络协议
通过QUIC 0-RTT建立更快的连接
本文主要探讨TLS协议,看看它如何允许客户机开始发送HTTP要求,并且无需等待TLS握手完成即可减少延迟、建立更快的连接。此外,之中会有一些风险如通过API端点发送HTTP请求间的bank API重放攻击、Cloudware如何拒绝0-RTT请求并通过加密保护连接网络。感谢学而思网校架构师刘连响对本文的技术审校。
1258 0
通过QUIC 0-RTT建立更快的连接