头文件:#include <string.h>
原型: char *strstr(const char *s1, const char *s2);
描述:strsrt()函数找出s1指向的字符串中第一次出现s2指向字符串的位置。
返回值:成功时,如果找到,strstr()返回指向该位置的指针;如果没有找到,返回null指针。
如果s2指向0长度的字符串,函数返回s1。
错误:没有定义错误
例子:
#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char *s1 = "\0";
char *s2 = "\0";
if (argv[1])
s1 = argv[1];
if (argv[2])
s2 = argv[2];
printf("s1:%s\n", s1);
printf("s2:%s\n", s2);
printf("%s\n", strstr(s1, s2));
return 0;
}
测试:
找到
$ ./strstr abcd c
s1:abcd
s2:c
cd
没有找到
$ ./strstr abc f
s1:abc
s2:f
(null)
子字符串长度为0
$ ./strstr abc
s1:abc
s2:
abc
原型: char *strstr(const char *s1, const char *s2);
描述:strsrt()函数找出s1指向的字符串中第一次出现s2指向字符串的位置。
返回值:成功时,如果找到,strstr()返回指向该位置的指针;如果没有找到,返回null指针。
如果s2指向0长度的字符串,函数返回s1。
错误:没有定义错误
例子:
#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char *s1 = "\0";
char *s2 = "\0";
if (argv[1])
s1 = argv[1];
if (argv[2])
s2 = argv[2];
printf("s1:%s\n", s1);
printf("s2:%s\n", s2);
printf("%s\n", strstr(s1, s2));
return 0;
}
测试:
找到
$ ./strstr abcd c
s1:abcd
s2:c
cd
没有找到
$ ./strstr abc f
s1:abc
s2:f
(null)
子字符串长度为0
$ ./strstr abc
s1:abc
s2:
abc
strstr(s1, s2); 是在s1中查找s2这个字符串 如果能找到 就返回指向s2第一个字符的指针