strstr - locate a substring
strstr, strcasestr - locate a substring
Standard C library (libc
, -lc
)
#include <cs50.h>
#include <string.h>
string strstr(string haystack, string needle);
#include <string.h>
char *strstr(const char *haystack, const char *needle);
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <string.h>
char *strcasestr(const char *haystack, const char *needle);
This function searches haystack
for (the first occurrence of) needle
. In other words, it determines whether (and where) needle
is a substring of haystack
.
The strstr() function finds the first occurrence of
the substring needle
in the string haystack
. The
terminating null bytes ('\0') are not compared.
The strcasestr() function is like strstr(), but ignores the case of both arguments.
If needle
is found in haystack
, this function returns the substring of haystack
that begins with needle
. (For instance, if haystack
is "foo bar bar baz"
and needle
is "bar"
, this function returns "bar bar baz"
.) If needle
is not found in haystack
, this function returns NULL
.
These functions return a pointer to the beginning of the located substring, or NULL if the substring is not found.
If needle
is the empty string, the return value is always
haystack
itself.
#include <cs50.h>
#include <string.h>
#include <stdio.h>
int main(void)
{
string haystack = "foo bar bar baz";
string needle = "bar";
string match = strstr(haystack, needle);
if (match)
{
printf("%s\n", match);
}
}
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
strstr() |
Thread safety | MT-Safe |
Thread safety | MT-Safe locale |
C11, POSIX.1-2008.
GNU.
POSIX.1-2001, C89.
GNU.