目录
一、strstr函数是什么?
二、使用场景
1.用来找出字符串1在字符串2的位置
2.用来判断字符串1中有没有字符串2
总结
一、strstr函数是什么?
strstr函数是 C 语言中的一个标准库函数(使用时要引入头文件string.h),用于在一个字符串中查找另一个字符串首次出现的位置。如果找到子串,则返回子串在主串中首次出现的位置的指针;如果未找到,则返回 NULL。
二、使用场景
1.用来找出字符串1在字符串2的位置
编写一个C语言程序,定义两个字符串str1和str2,然后使用strstr函数来检查str2是否是str1的子串。如果是,打印出str2在str1中首次出现的位置(从0开始计数);如果不是,则打印出否。
//C语言 #include <stdio.h> #include <string.h> int main(void) { const char *str1 = "Hello, world!"; const char *str2 = "world"; char *result; result = strstr(str1, str2); //返回值类型为指针类型? if (result != NULL) { printf("'%s' 是 '%s'的子集\n", str2, str1); printf("'%s'第一次出现在:第 %ld个位置\n", str2, result - str1); } else { printf("'%s'不是 '%s'的子集\n", str2, str1); } return 0; }
讯享网
2.用来判断字符串1中有没有字符串2
例如蓝桥杯中的题目
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 就是一个顺子日期,因为它出现了一个顺子:123; 而 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期?
讯享网#include<stdio.h> #include<string.h> int main(void){ char num[8]; int count=0; int monthDays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//年份固定2022是平年 for(int i=1;i<=12;i++)//遍历月份 { for(int j=1;j<=monthDays[i];j++)//遍历每月日期 { int sum=2022*10000+i*100+j; sprintf(num,"%lld",sum); // 因为234等等不合法,顺子只有012和123 if(strstr(num,"012")!=NULL||strstr(num,"123")!=NULL){ count++; } } } printf("%d",count); return 0; }
总结
strstr函数是一个方便的工具,用于在字符串中查找子串。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/72693.html