曲径通幽论坛

标题: strcspn() -- 返回连续且不包含指定字符串内容的字符数 [打印本页]

作者: beyes    时间: 2011-12-22 11:39
标题: strcspn() -- 返回连续且不包含指定字符串内容的字符数
strcspn() 函数原型如下:
[C++] 纯文本查看 复制代码
#include <string.h>
size_t strcspn(const char *s, const char *reject);

该函数扫描字符串 s ,如果遇到 s 中也包含有 reject 所指字符串或其中之一字符,那么函数就返回两者共有的那个字符串或字符(最先发现的那个)的前面的字符个数。

测试代码
[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <string.h>

int main()
{
        char *str = "abcd aabb-=ccdd 12345";

        printf ("%d\n", strcspn(str, " "));

        printf ("%d\n", strcspn(str, "-="));

        printf ("%d\n", strcspn(str, "123"));

        printf ("%d\n", strcspn(str, "kkkkkkkd"));     

        return 0;
}

运行输出:
./strcspn
4
9
16
3
注意最后一条的输出,在 str 里面并不包含 "kkkkkkkd" 这样的字串,但是它们共同都含有字符 'd' ,而在 str 中 d 最早出现的位置在第 4 个字符处,所以输出结果为 3 。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2