size_t strspn (const char *s,const char * accept);
strspn返回s中第一个不在accept中出现过的字符下标。
Returns an integer value specifying the length of the substring in str that consists entirely of characters in strCharSet.
If str begins with a character not in strCharSet, the function returns 0.
accept可以包含多个字符,从str开始搜索,计算str中包含的accept中任一字符的下标。
#include <string.h>
#include <stdio.h>
main()
{
char *str="Linux was first developed for 386/486-based pcs.";
printf("%d\n",strspn(str,"Linux"));
printf("%d\n",strspn(str,"/-"));
printf("%d\n",strspn(str,""));
}

运行结果:

5

0

0

 
size_t strcspn(const char *s, const char * reject);
strcspn()从参数s 字符串的开头计算连续的字符, 而这些字符都完全不在参数reject 所指的字符串中.
简单地说, 若strcspn()返回的数值为n, 则代表字符串s 开头连续有n 个字符都不含字符串reject 内的字符.
返回字符串s 开头连续不含字符串reject 内的字符数目,也即返回s中第一个在reject中出现过的字符下标。
#include <string.h>

main(void)

{

    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, ""));

}
 

运行结果:

5

33

30

编程使用:key-value去掉参数前面的空格

int _nvram_init(void *unused)
{
FILE *in;
char buffer[SIZE], *token, *line;
int i;
if (!(in = fopen(PATH_DEV_NVRAM, "r"))) {
printf("nvram file can not open\n");
return -;
}
    while (fgets(buffer, 300, in)) {
if (strchr(buffer, '\n')) *(strchr(buffer, '\n')) = '\0';
token = buffer + strspn(buffer, " ");
if (*token == '\0') continue;
line = token + strcspn(token, "=");
if (*line == '\0') continue;
*line = '\0';
line++; /* eat leading whitespace */
line = line + strspn(line, " ");
/* eat trailing whitespace */
for (i = strlen(line); i > 0 && (line[i - 1]==' '); i--);
line[i] = '\0';
_nvram_set(token,line);
}
fclose(in);
printf("nvram init----\n"); return 0; }

strspn&strcspn的更多相关文章

  1. udhcpd源码分析2--读取配置文件

    1:重要的结构体 读取配置文件信息到全局的结构体struct server_config_t server_config中,这个结构在很多文件中都有引用到很重要. /* dhcpd.h */ stru ...

  2. 自己编写的str操作函数

    1.strcat() 此函数原型为 char *strcat(char *dest, const char *src). 功能为连接两个字符串,把src连接到dest后面:返回dest地址 实现如下 ...

  3. php回顾(3)系统函数

    abs()         绝对值 ceil()         向上取整 floor()       向下取整 round()     四舍五入           第二个参数:保留小数点后面几位 ...

  4. strspn 和strcspn

    1.strcspn头文件:#inclued<string.h>定义函数:size_t strcspn(const char *s, const char * reject);函数说明:st ...

  5. 【 C 】高级字符串查找之 strspn 和 strcspn 的思考

    我的CSDN博客 strspn 这个库函数是真的很难理解,看了很多中文描述,反正都是不知所云,给出一系列的例子,结果也是让我瞠目结舌,荒唐.荒谬.荒诞! 特此记录理解过程,最后竟然是百度百科让我明白了 ...

  6. strspn() 和 strcspn() 函数【转】

    本文转载自:https://flyer103.wordpress.com/2011/06/03/strspn-%E5%92%8C-strcspn-%E5%87%BD%E6%95%B0/ 前几天在看一本 ...

  7. strspn和strcspn妙用

    http://blog.csdn.net/aidenliu/article/details/5460201

  8. 内存及字符串操作篇strlen strchar strcmp strcoll strcpy strdup strstr strtok strspn strrchr bcmp bcopy bzero index memccpy memset

    bcmp(比较内存内容) 相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件 #include<string.h> 定 ...

  9. 由ffmpeg中avformat模块中的 URL_SCHEME_CHARS 看 strspn( ) 的妙用

    在ffmpeg的avformat 模块中avio.c 对 URL_SCHEME_CHARS 的定义: #define URL_SCHEME_CHARS \ "abcdefghijklmnop ...

随机推荐

  1. [Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

    思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=% ...

  2. java--生成实体类方法

    由于工作中使用eclipse开发,没有安装hibernate插件,所以无法使用自动生成实体类的功能,为了方便在网上找了段别人写的自动生成实体类方法,稍加修改,直接运行就可以生成对应表的实体类. 注意使 ...

  3. Java 根据IP获取地址

    用淘宝接口:(源码:java 根据IP地址获取地理位置) pom.xml: <!-- https://mvnrepository.com/artifact/net.sourceforge.jre ...

  4. idea 设置jetty进程jvm参数

    /** * MyEclipse6.5通过Jetty跑Web应用时提示OutOfMemoryError: PermGen space的解决办法 * @see ---------------------- ...

  5. [Angular] Extract Implementation Details of ngrx from an Angular Application with the Facade Pattern

    Extracting away the implementation details of ngrx from your components using the facade pattern cre ...

  6. 跟着辛星一起用CSS美化商品列表

    说实话,近期对CSS的关注还是蛮多的,不为别的,仅仅是由于自己喜欢,感觉写CSS就像画家绘画一样,使用热情和激情去探索,没有了那份功利心,反而感觉是一种享受.特别有成就感,好啦,今天就分享一期自己用C ...

  7. java中的Annotation

    java中包含5个基本的Annotation: @Override @Deprecated @SuppressWarnings @SafeVarargs @FunctionalInterface …… ...

  8. Linux打包解压

    tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包: tar czvf my.tar file1 多个文件压缩打包: tar czvf my.tar ...

  9. 【转】Struts2 和 Spring MVC对比

    1. 实现机制 struts2框架是类级别的拦截,每次来了请求就创建一个controller中对应的Action,然后调用setter getter方法把request中的数据注入 .struts2实 ...

  10. ES6 for...of循环

    1.for of const arr = ['red', 'green', 'blue']; for(let v of arr) { console.log(v); // red green blue ...