C语言中strspn()函数和strcspn()函数的对比使用

C语言strspn()函数:计算字符串str中连续有几个字符都属于字符串accept
头文件:#include <string.h>

strspn() 函数用来计算字符串 str 中连续有几个字符都属于字符串 accept,其原型为:
size_t strspn(const char *str, const char * accept);

【函数说明】strspn() 从参数 str 字符串的开头计算连续的字符,而这些字符都完全是 accept 所指字符串中的字符。简单的说,若 strspn() 返回的数值为n,则代表字符串 str 开头连续有 n 个字符都是属于字符串 accept 内的字符。

【返回值】返回字符串 str 开头连续包含字符串 accept 内的字符数目。所以,如果 str 所包含的字符都属于 accept,那么返回 str 的长度;如果 str 的第一个字符不属于 accept,那么返回 0。

注意:检索的字符是区分大小写的。

提示:提示:函数 strcspn() 的含义与 strspn() 相反,可以对比学习。

范例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
  int i;
  char str[] = "129th";
  char accept[] = "1234567890";
  i = strspn(str, accept);
  printf("str 前 %d 个字符都属于 accept\n",i);
  system("pause");
  return 0;
}

执行结果:

str 前 3 个字符都属于 accept

C语言strcspn()函数:计算字符串str中连续有几个字符都不属于字符串accept
头文件:#inclued<string.h>

strcspn() 用来计算字符串 str 中连续有几个字符都不属于字符串 accept,其原型为:

  int strcspn(char *str, char *accept);

【参数说明】str、accept为要进行查找的两个字符串。

strcspn() 从字符串 str 的开头计算连续的字符,而这些字符都完全不在字符串 accept 中。简单地说,若 strcspn() 返回的数值为 n,则代表字符串 str 开头连续有 n 个字符都不含字符串 accept 中的字符。

【返回值】返回字符串 str 开头连续不含字符串 accept 内的字符数目。

注意:如果 str 中的字符都没有在 accept 中出现,那么将返回 atr 的长度;检索的字符是区分大小写的。

提示:函数 strspn() 的含义与 strcspn() 相反,可以对比学习。

【示例】返回s1、s2包含的相同字符串的位置。

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
  char* s1 = "http://c.biancheng.net/cpp/u/biaozhunku/";
  char* s2 = "c is good";
  int n = strcspn(s1,s2);
  printf("The first char both in s1 and s2 is :%c\n",s1[n]);
  printf("The position in s1 is: %d\n",n);
  system("pause");
  return 0;
}

运行结果:

The first char both in s1 and s2 is :c
The position in s1 is: 7

再看一个例子,判断两个字符串的字符是否有重复的。

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
  char* s1 = "http://c.biancheng.net/cpp/xitong/";
  char* s2 = "z -+*";
  if(strlen(s1) == strcspn(s1,s2)){
    printf("s1 is diffrent from s2!\n");
  }else{
    printf("There is at least one same character in s1 and s2!\n");
  }
  system("pause");
  return 0;
}

运行结果:

s1 is diffrent from s2!
时间: 2015-08-21

浅析C语言中strtol()函数与strtoul()函数的用法

C语言strtol()函数:将字符串转换成long(长整型数) 头文件: #include <stdlib.h> strtol() 函数用来将字符串转换为长整型数(long),其原型为: long int strtol (const char* str, char** endptr, int base); [参数说明]str 为要转换的字符串,endstr 为第一个不能转换的字符的指针,base 为字符串 str 所采用的进制. [函数说明]strtol() 会将参数 str 字符串根据参数

详解C语言中index()函数和rindex()函数的用法

C语言index()函数:查找字符串并返回首次出现的位置 相关函数:rindex, srechr, strrchr 头文件:#include <string.h> 定义函数: char * index(const char *s, int c); 函数说明:index()用来找出参数s 字符串中第一个出现的参数c 地址,然后将该字符出现的地址返回.字符串结束字符(NULL)也视为字符串一部分. 返回值:如果找到指定的字符则返回该字符所在地址,否则返回0. 范例 #include <str

C语言中查找字符在字符串中出现的位置的方法

C语言strchr()函数:查找某字符在字符串中首次出现的位置 头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为: char * strchr (const char *str, int c); [参数]str 为要查找的字符串,c 为要查找的字符. strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回. 注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个

Python 查找字符在字符串中的位置实例

如下所示: str_1='wo shi yi zhi da da niu ' char_1='i' nPos=str_1.index(char_1) print(nPos) 运行结果:7 ========是使用find========== str_1='wo shi yi zhi da da niu ' char_1='i' nPos=str_1.find(char_1) print(nPos) 结果:5 ========如何查找所有'i'在字符串中位置呢?=========== #开挂模式 s

python实现查找两个字符串中相同字符并输出的方法

本文实例讲述了python实现查找两个字符串中相同字符并输出的方法.分享给大家供大家参考.具体实现方法如下: seq1 = "spam" seq2 = "scam" res = [] for x in seq1: if x in seq2: res.append(x) print res 输出结果如下: ['s', 'a', 'm'] 希望本文所述对大家的Python程序设计有所帮助.

PHP实现统计所有字符在字符串中出现次数的方法

本文实例讲述了PHP实现统计所有字符在字符串中出现次数的方法.分享给大家供大家参考,具体如下: 先来看看效果: 算法: 循环一次字符串(本例的$str),把出现过的字符串记录在一个数组(如本例的$strRecord)内,如果已经此记录函数已经有,则不记录: 在每个字符串时,拿来与记录数组的值进行比较(本例的$strRecord[]['key']),如果记录里的某个值和这个字符串一样,就记录次数+1(本例的$strRecord[]['count']); 当然,设置一个变量,默认为false(如本例

javascript 折半查找字符在数组中的位置(有序列表)

复制代码 代码如下: /** * 折半查找字符在数组中的位置(有序列表) * @param array 被检索的数组 * @param x 要查找的字符 * @type int * @returns 字符在数组中的位置,没找到返回-1 */ function binarySearch(array,x){ var lowPoint=1; var higPoint=array.length; var returnValue=-1; var midPoint; var found=false; whi

在SQL中获取一个长字符串中某个字符串出现次数的实现方法

在SQL中获取一个长字符串中某个字符串出现次数的实现方法 比如有个字符串: X-BGS-2010-09-15-001 我想知道其中'-'出现的次数,可以用下面的方法实现,而不需要复杂的一个个字符分析. declare @a varchar(100)set @a='X-BGS-2010-09-15-001'select len(replace(@a,'-','--'))-len(@a) 通俗一点讲就是 如果要判断表a中的 字段b中存在几个字母c的话,可以这么写 select len(replace

JavaScript自定义函数实现查找两个字符串最长公共子串的方法

本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法.分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= "" ,L1=s1.length,L2=s2.length; if (L1>L2){ var s3=s1;s1=s2,s2=s3,L1=s2.length;} for ( var j=L1;j> 0 ;j--) for ( var i= 0 ;i&

python寻找list中最大值、最小值并返回其所在位置的方法

实例如下所示: c = [-10,-5,0,5,3,10,15,-20,25] print c.index(min(c)) # 返回最小值 print c.index(max(c)) # 返回最大值 以上这篇python寻找list中最大值.最小值并返回其所在位置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

ASP.NET从字符串中查找字符出现次数的具体实现方法

首先想到的方法当然是从头遍历字符串并统计: 复制代码 代码如下: c1=0;for(inti=0;i {if(str[i]=='A'){c1++;}} 第二种方法也很容易想到,将字符串中所有要查找的字符去除,然后比较去除前后的字符串长度即可.这种方法遭到了某人的鄙视,据说性能很差而且多占空间. 复制代码 代码如下: c2=str.Length-str.Replace("A",String.Empty).Length; 接下来某人又提出了第三种方法,是用要查找的字符为分隔符,将原字符串分

php在字符串中查找另一个字符串

<a href="./">返回列表</a><br> <form action="<?echo $PHP_SELF;?>" method="post"> 在<input type="text" name="string" value="<?echo $string;?>">中查找<input type