Difference between revisions of "cpp/string/byte/memchr"
From cppreference.com
m (s/character/byte) |
Andreas Krug (Talk | contribs) m ({{c}}, headers sorted, fmt) |
||
Line 1: | Line 1: | ||
− | {{cpp/title| memchr}} | + | {{cpp/title|memchr}} |
{{cpp/string/byte/navbar}} | {{cpp/string/byte/navbar}} | ||
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl header | cstring}} | + | {{dcl header|cstring}} |
− | {{dcl | | + | {{dcl| |
const void* memchr( const void* ptr, int ch, std::size_t count ); | const void* memchr( const void* ptr, int ch, std::size_t count ); | ||
}} | }} | ||
− | {{dcl | 1= | + | {{dcl|1= |
void* memchr( void* ptr, int ch, std::size_t count ); | void* memchr( void* ptr, int ch, std::size_t count ); | ||
}} | }} | ||
{{dcl end}} | {{dcl end}} | ||
− | Converts {{ | + | Converts {{c|ch}} to {{c|unsigned char}} and locates the first occurrence of that value in the initial {{c|count}} bytes (each interpreted as {{c|unsigned char}}) of the object pointed to by {{c|ptr}}. |
{{rrev|since=c++17| | {{rrev|since=c++17| | ||
− | This function behaves as if it reads the bytes sequentially and stops as soon as a matching bytes is found: if the array pointed to by {{ | + | This function behaves as if it reads the bytes sequentially and stops as soon as a matching bytes is found: if the array pointed to by {{c|ptr}} is smaller than {{c|count}}, but the match is found within the array, the behavior is well-defined. |
}} | }} | ||
===Parameters=== | ===Parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | ptr | pointer to the object to be examined}} | + | {{par|ptr|pointer to the object to be examined}} |
− | {{par | ch | byte to search for}} | + | {{par|ch|byte to search for}} |
− | {{par | count | max number of bytes to examine}} | + | {{par|count|max number of bytes to examine}} |
{{par end}} | {{par end}} | ||
Line 30: | Line 30: | ||
Search an array of characters. | Search an array of characters. | ||
{{example | {{example | ||
− | + | |code= | |
− | + | ||
#include <cstring> | #include <cstring> | ||
+ | #include <iostream> | ||
int main() | int main() | ||
{ | { | ||
− | char arr[] = {'a','\0','a','A','a','a','A','a'}; | + | char arr[] = {'a', '\0', 'a', 'A', 'a', 'a', 'A', 'a'}; |
− | char *pc = (char*)std::memchr(arr,'A',sizeof arr); | + | char *pc = (char*) std::memchr(arr, 'A', sizeof arr); |
if (pc != nullptr) | if (pc != nullptr) | ||
− | + | std::cout << "search character found\n"; | |
else | else | ||
− | + | std::cout << "search character not found\n"; | |
} | } | ||
− | + | |output= | |
search character found | search character found | ||
}} | }} | ||
Line 49: | Line 49: | ||
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/string/byte/dsc strchr}} | + | {{dsc inc|cpp/string/byte/dsc strchr}} |
− | {{dsc inc | cpp/algorithm/dsc find}} | + | {{dsc inc|cpp/algorithm/dsc find}} |
− | {{dsc see c | c/string/byte/memchr}} | + | {{dsc see c|c/string/byte/memchr}} |
{{dsc end}} | {{dsc end}} | ||
{{langlinks|de|es|fr|it|ja|pt|ru|zh}} | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 09:14, 5 June 2023
Defined in header <cstring>
|
||
const void* memchr( const void* ptr, int ch, std::size_t count ); |
||
void* memchr( void* ptr, int ch, std::size_t count ); |
||
Converts ch to unsigned char and locates the first occurrence of that value in the initial count bytes (each interpreted as unsigned char) of the object pointed to by ptr.
This function behaves as if it reads the bytes sequentially and stops as soon as a matching bytes is found: if the array pointed to by ptr is smaller than count, but the match is found within the array, the behavior is well-defined. |
(since C++17) |
Contents |
[edit] Parameters
ptr | - | pointer to the object to be examined |
ch | - | byte to search for |
count | - | max number of bytes to examine |
[edit] Return value
Pointer to the location of the byte, or a null pointer if no such byte is found.
[edit] Example
Search an array of characters.
Run this code
Output:
search character found
[edit] See also
finds the first occurrence of a character (function) | |
(C++11) |
finds the first element satisfying specific criteria (function template) |
C documentation for memchr
|