Difference between revisions of "c/string/byte/strstr"
From cppreference.com
m (@2@, langlinks) |
(→Example: const correctness) |
||
Line 29: | Line 29: | ||
| | | | ||
|code= | |code= | ||
− | |||
#include <stdio.h> | #include <stdio.h> | ||
+ | #include <string.h> | ||
void find_str(char const *str, char const *substr) | void find_str(char const *str, char const *substr) | ||
{ | { | ||
− | char *pos = strstr(str, substr); | + | char const *pos = strstr(str, substr); |
− | pos | + | if (pos) |
− | + | printf( | |
− | + | "found the string '%s' in '%s' at position %td\n", | |
− | + | substr, str, pos - str | |
+ | ); | ||
+ | else | ||
+ | printf( | ||
+ | "the string '%s' was not found in '%s'\n", | ||
+ | substr, str | ||
+ | ); | ||
} | } | ||
int main(void) | int main(void) | ||
{ | { | ||
− | char *str = "one two three"; | + | char const *str = "one two three"; |
find_str(str, "two"); | find_str(str, "two"); | ||
find_str(str, ""); | find_str(str, ""); |
Revision as of 01:42, 1 October 2024
Defined in header <string.h>
|
||
char *strstr( const char *str, const char *substr ); |
(1) | |
/*QChar*/ *strstr( /*QChar*/ *str, const char *substr ); |
(2) | (since C23) |
1) Finds the first occurrence of the null-terminated byte string pointed to by
substr
in the null-terminated byte string pointed to by str
. The terminating null characters are not compared.2) Type-generic function equivalent to (1). Let
T
be an unqualified character object type.
- If
str
is of type const T*, the return type is const char*. - Otherwise, if
str
is of type T*, the return type is char*. - Otherwise, the behavior is undefined.
- If
The behavior is undefined if either str
or substr
is not a pointer to a null-terminated byte string.
Contents |
Parameters
str | - | pointer to the null-terminated byte string to examine |
substr | - | pointer to the null-terminated byte string to search for |
Return value
Pointer to the first character of the found substring in str
, or a null pointer if such substring is not found. If substr
points to an empty string, str
is returned.
Example
Run this code
#include <stdio.h> #include <string.h> void find_str(char const *str, char const *substr) { char const *pos = strstr(str, substr); if (pos) printf( "found the string '%s' in '%s' at position %td\n", substr, str, pos - str ); else printf( "the string '%s' was not found in '%s'\n", substr, str ); } int main(void) { char const *str = "one two three"; find_str(str, "two"); find_str(str, ""); find_str(str, "nine"); find_str(str, "n"); return 0; }
Output:
found the string 'two' in 'one two three' at position 4 found the string '' in 'one two three' at position 0 the string 'nine' was not found in 'one two three' found the string 'n' in 'one two three' at position 1
References
- C17 standard (ISO/IEC 9899:2018):
- 7.24.5.7 The strstr function (p: 269)
- C11 standard (ISO/IEC 9899:2011):
- 7.24.5.7 The strstr function (p: 369)
- C99 standard (ISO/IEC 9899:1999):
- 7.21.5.7 The strstr function (p: 332)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.11.5.7 The strstr function
See also
finds the first occurrence of a character (function) | |
finds the last occurrence of a character (function) | |
C++ documentation for strstr
|