头文件:#include <string.h>
strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:
char *strstr( char *str, char * substr );
【参数说明】str为要检索的字符串,substr为要检索的子串。
【返回值】返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。
【函数示例】strstr()函数的使用。
- #include<stdio.h>
- #include<string.h>
- int main(){
- // 也可以改成 char str[] = "http://see.xidian.edu.cn/cpp/u/xitong/";
- char *str = "http://see.xidian.edu.cn/cpp/u/xitong/";
- char *substr = "see";
- char *s = strstr(str, substr);
- printf("%s\n", s);
- return 0;
- }
运行结果:
see.xidian.edu.cn/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");
}
else
{
// printf("%s\n",s3);
// printf("%d %d %d\n",s1,s2,s3);
int k=s3-s1+1;
printf("%d\n",k);
}
}
return 0;
}

本文介绍了C语言中的strstr()函数,用于查找字符串中首次出现子串的位置。函数原型为char *strstr(char *str, char *substr),返回值为子串在字符串中的地址或NULL。示例代码演示了如何使用strstr()函数查找子串,并在找不到子串时输出特定提示。"
52766448,5720816,iOS应用接入微信支付指南,"['iOS开发', '微信支付', '移动支付']

1万+

被折叠的 条评论
为什么被折叠?



