名前空間
変種
操作

std::memchr

From cppreference.com
< cpp‎ | string‎ | byte
 
 
 
 
ヘッダー <cstring> で定義
const void* memchr( const void* ptr, int ch, std::size_t count );
      void* memchr(       void* ptr, int ch, std::size_t count );

chunsigned charに変換し、ptrが指すオブジェクトの最初のcountバイト(各バイトはunsigned charとして解釈される)の中から、その値が最初に出現する位置を検索します。

この関数は、バイトを順番に読み込み、一致するバイトが見つかり次第停止するように動作します。もしptrが指す配列がcountよりも小さい場合でも、配列内で一致が見つかった場合、その振る舞いは定義されています。

(C++17以降)

目次

[編集] パラメータ

ptr - 検査対象のオブジェクトへのポインタ
文字 - 検索するバイト
count - 検査する最大バイト数

[編集] 返り値

バイトが見つかった位置へのポインタ。そのようなバイトが見つからなかった場合はヌルポインタ。

[編集]

文字配列を検索します。

#include <cstring>
#include <iostream>
 
int main()
{
    char arr[] = {'a', '\0', 'a', 'A', 'a', 'a', 'A', 'a'};
    char *pc = (char*) std::memchr(arr, 'A', sizeof arr);
    if (pc != nullptr)
        std::cout << "search character found\n";
    else
        std::cout << "search character not found\n";
}

出力

search character found

[編集] 関連項目

最初に出現する文字を見つける
(関数) [編集]
特定の基準を満たす最初の要素を見つける
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)