std::strstr(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

🌸 NAME 🌸

okay so this is the std::strstr(3) page from the C++ Standard Libary manual β€” yes bestie, Libary with the typo is exactly how it appears, and I'm keeping it 😭. The name is literally std::strstr, and the NAME line says std::strstr β€” std::strstr. Love that for us πŸ’….


✨ Synopsis ✨

Defined in header <cstring>.

const char* strstr( const char* haystack, const char* needle );
    char* strstr(       char* haystack, const char* needle );

So what does it do? It finds the first occurrence of the byte string needle in the byte string pointed to by haystack. The terminating null characters are not compared. That's the whole vibe: search, find, return, periodt πŸ’–.


πŸŽ€ Parameters πŸŽ€

  • haystack β€” pointer to the null-terminated byte string to examine. That's the string being searched, bestie.
  • needle β€” pointer to the null-terminated byte string to search for. That's the pattern you're hunting for πŸ”.

πŸ”₯ Return value πŸ”₯

Pointer to the first character of the found substring in haystack, or a null pointer if no such character is found. And if needle points to an empty string, haystack is returned. No cap, that's the rule πŸ’….


🧚 Example 🧚

// Run this code

#include <cstring>
#include <iostream>

int main()
{
    const char* str = "Try not. Do, or do not. There is no try.";
    const char* target = "not";
    const char* result = str;

    while ((result = std::strstr(result, target)))
    {
        std::cout << "Found '" << target
                  << "' starting at '" << result << "'\n";

        // Increment result, otherwise we'll find target at the same location
        ++result;
    }
}

Output

Found 'not' starting at 'not. Do, or do not. There is no try.'
Found 'not' starting at 'not. There is no try.'

🌈 See also 🌈

  • find β€” finds the first occurrence of the given substring (public member function of std::basic_string<CharT,Traits,Allocator>).
  • wcsstr β€” finds the first occurrence of a wide string within another wide string (function).
  • strchr β€” finds the first occurrence of a character (function).
  • strrchr β€” finds the last occurrence of a character (function).
  • C documentation for strstr.

mwah πŸ’‹ that's the whole page, bestie β€” source/version: http://cppreference.com, date: 2024.06.10 🫢✨

πŸ“¦ where this page comes from