C语⾔strstr()函数:返回字符串中⾸次出现⼦串的地址头⽂件:#include <string.h>
strstr()函数⽤来检索⼦串在字符串中⾸次出现的位置,其原型为:
char *strstr( char *str, char * substr );
【参数说明】str为要检索的字符串,substr为要检索的⼦串。
【返回值】返回字符串str中第⼀次出现⼦串substr的地址;如果没有检索到⼦串,则返回NULL。
【函数⽰例】strstr()函数的使⽤。
1. #include<stdio.h>
2. #include<string.h>
3. int main(){
4. // 也可以改成 char str[] = "see.xidian.edu/cpp/u/xitong/";
5. char *str = "see.xidian.edu/cpp/u/xitong/";
6. char *substr = "see";
7. char *s = strstr(str, substr);
8. printf("%s\n", s);
9. return 0;
10. }
运⾏结果:
see.xidian.edu/cpp/u/xitong/
例2
学密码学⼀定得学程序
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
曾经,ZYJ同学⾮常喜欢密码学。有⼀天,他发现了⼀个很长很长的字符串S1。他很好奇那代表着什么,于是神奇的WL给了他另⼀个字符串S2。但是很不幸的是,WL忘记跟他说是什么意思了。这个时候,ZYJ不得不求助与伟⼤的ZP。ZP笑了笑说,这个很神奇的,WL的意思是只要你到她给你的字符串在那个神奇的字符串的位置,你就会有神奇的发现。ZYJ恍然⼤悟,原来如此,但是悲剧来了,他竟然不知道怎么。。。。是的,很囧是不是。所以这时候就需要化⾝为超级玛丽亚的你现⾝了,告诉他吧。。。。。。
Input
⾸先输⼊⼀个n。表⽰有n组测试数据。
每组测试数据有两⾏。
第⼀⾏为字符串S1,长度不⼤于1000000。
第⼆⾏为字符串S2,长度不⼤于10000,并且长度不⼩于2。
Output
输出S2在S1的位置。如果有多个位置,只输出第⼀个位置。如果不到,就输出“::>_<::“(不输出双引号)。
Sample Input
1
ASDFGDF
DF
Sample Output
3
#include<stdio.h>
#include<string.h>
#define N 1000001
char s1[N],s2[10010];
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n--)
{
gets(s1);
gets(s2);
char *s3=strstr(s1,s2);
if(s3==NULL)
{
printf("::>_<::\n");
printf怎么输出字符}
else
{
// printf("%s\n",s3);
// printf("%d %d %d\n",s1,s2,s3);
int  k=s3-s1+1;
printf("%d\n",k);
}
}
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。