strspn()函数

  如果要对比两个字符串中从第一个字符开始总共有多少个相同字符时,可以使用strspn()函数,它里面有两个参数字符串1和字符串2,从字符串1开始位置依次对比字符串1和字符串2有多少个相同的字符,并且返回相同字符的个数,如果字符串2中没有字符串1中的第一个字符则返回0;

  下面通过一个例子来演示strspn()函数的使用方法。

int main(int argc, char *argv[])
{char str1[]="abcde";char *str2="ab123";int ret=0;puts(str1);    ret = strspn(str1,str2);printf("%d\r\n",ret);    system("pause");return 0;
}

  定义两个字符串,然后对比这两个字符串中相同字符的数量。输出结果如下:

  输出的结果为2,说明这两个串开头的2个字符时相同的。修改字符串2之后继续测试。

  将字符串2中的“ab”放到“123”的后面,输出的结果依然为2,说明字符串2中的字符不一定需要从第一个开始和字符串1中的相同。继续修改字符串2进行测试。

  虽然字符串2中的"bcde"和字符串1中的一样,但是输出的结果依然为0,说明字符串1和字符串2从第一个位置开始没有相同的字符,就直接结束对比了。

strcspn()函数

  strcspn()函数的功能和strspn()函数的功能刚好相反。对比的是字符串1和字符串2中不相同字符的个数。

int main(int argc, char *argv[])
{char str1[]="abcde";char *str2="ab123";int ret=0;puts(str1);//ret = strspn(str1,str2);ret = strcspn(str1,str2);printf("%d\r\n",ret);    system("pause");return 0;
}

  依然使用上面的例子,输出结果如下:

  输出结果为0,说明字符串2中有和字符串1中从第一个字符开始相同的字符。

  修改字符串2,将“ab”放到“123”的后面,输出结果依然为0。继续修改字符串2。

  字符串2修改之后,打印的结果为1,说明字符串1中从起始位置开始有1个字符和字符串2不相等。继续修改字符串2。

  此时输出的结果为5,说明字符串1中的5个字符在字符串2中都没有。

C语言学习笔记---字符串对比函数strspn()和strcspn()函数相关推荐

  1. C语言学习笔记---字符串查找函数strstr()和strpbrk()函数

    strstr()函数   C语言中如何向查找一个字符串中是否包含另一个字符串,可以使用strstr()函数.使用示例如下: int main(int argc, char *argv[]) {char ...

  2. C语言学习笔记---字符串拼接函数 strcat() 和 strncat()

    strcat()函数    strcat()函数主要用来拼接字符串,用于将一个字符串拼接到另一个字符串的后面.下面通过一个简单的例子来演示一下这个函数的使用方法. int main() {char s ...

  3. C语言学习笔记——字符串结束符\0

    C语言中的字符串结束符\0标志着字符串的结束,由编译器自己加上的,ASCII值为0,表示NULL,ASCII中有很多不可见字符由转义字符\和可见字符来标识的,当然可见字符也能用转义字符表示.

  4. C语言学习笔记---字符串转换函数

    字符串转整数   字符串转换为整数的函数有两个,他们的函数原型如下: int __cdecl atoi(const char *_Str);long __cdecl atol(const char * ...

  5. C语言学习笔记(1)--基本概念和函数用法

    最近开始重新学习C语言,所谓"好记性不如烂笔头",把一些要记住的基本概念和一些函数用法,无论是书上看到的,或者是在别人的博客和论坛上帖子看到的,都归纳到这篇文章中: 2014-10 ...

  6. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

  7. c语言数组宏定义标识符,C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针...

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

  8. C语言学习笔记10-指针(动态内存分配malloc/calloc、realloc、释放free,可变数组实现;Tips:返回指针的函数使用本地变量有风险!;最后:函数指针)

    C语言:指针 1. 指针:保存地址的变量 *p (pointer) ,这种变量的值是内存的地址.   取地址符& 只用于获取变量(有地址的东西)的地址:scanf函数-取地址符   地址的大小 ...

  9. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)

    C语言数组   数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等.   一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...

最新文章

  1. 手动配置Hibernate的方法
  2. 上传代码到gitee操作
  3. electron——初探
  4. smartform四联纸跳页问题
  5. 面试题整理11 数字在排序数组中出现的次数
  6. 《软件工程(第4版?修订版)》—第1章1.2节软件工程取得了哪些进展
  7. 前端学习(1738):前端调试值之快速切换pc和手机端
  8. linux文件的时间格式
  9. [转]命令行在IIS添加虚拟目录
  10. python 如何判断excel单元格为空_如何用python处理excel(二)
  11. MySQL双主高可用架构之MMM实战
  12. 使用Dependency Walker对模块进行故障排除
  13. 哲学家就餐问题python_哲学家就餐问题的一种Python解决方案
  14. matlab编译后方交会,后方交会MATLAB程序实习报告.docx
  15. Handler到底是一个什么东东
  16. cardboard下载_如何在Android上设置Google Cardboard
  17. [No0000163]卷福、神秘博士和一群老戏骨表演群口相声:To be or not to be该咋念,简直高潮迭起...
  18. Ant Design Pro Vue使用心得
  19. 计算机宏应用实例,计算机等级考试二级Access宏的使用教程
  20. 【JQuery】Datatables插件的基本使用方法

热门文章

  1. BeanUtils工具包下载及应用
  2. Flickr 网站架构分析
  3. 学点 C 语言(3): 转义字符
  4. Vue - ElementUI中循环渲染表格,控制字段的显示与隐藏 v-if与v-for同时使用
  5. 20175320 2018-2019-2 《Java程序设计》第6周学习总结
  6. jQuery 常用效果
  7. BZOJ 1193: [HNOI2006]马步距离【贪心+搜索】
  8. linux下安装nodejs及cnpm
  9. 2015英特尔® 实感™ (Intel® RealSense™) 动手开发实验课
  10. [linux驱动]proc学习笔记(一)