std::strcspn
From cppreference.com
| ヘッダー <cstring> で定義 |
||
| std::size_t strcspn( const char *dest, const char *src ); |
||
destで指されるバイト文字列の、srcで指されるバイト文字列に含まれる文字*のみ*で構成される最大の前方部分文字列の長さを返します。
関数名は「complementary span」の略です。
目次 |
[編集] パラメータ
| dest | - | 解析対象のヌル終端バイト文字列へのポインタ |
| src | - | 検索対象の文字を含むヌル終端バイト文字列へのポインタ |
[編集] 戻り値
srcで指されるバイト文字列に含まれない文字のみで構成される最大の前方部分文字列の長さ。
[編集] 例
このコードを実行
#include <cstddef> #include <cstring> #include <iomanip> #include <iostream> #include <string> int main() { std::string s = "abcde312$#@"; const char* invalid = "*$#"; const std::size_t valid_len = std::strcspn(s.c_str(), invalid); if (valid_len != s.size()) { std::cout << std::quoted(s) << " contains invalid chars starting at position " << valid_len << '\n' << std::string(valid_len + 1, '-') << "^\n"; } }
出力
"abcde312$#@" contains invalid chars starting at position 8 ---------^
[編集] 関連項目
| 以下から成る最大の初期セグメントの長さを返す 別のバイト文字列に含まれる文字のみ (関数) | |
| 以下から成る最大の初期セグメントの長さを返す 別のワイド文字列に含まれないワイド文字のみからなる (関数) | |
| 区切り文字の集合の中からいずれかの文字が最初に出現する位置を見つける (関数) | |
| 文字が最初に現れる位置を見つける ( std::basic_string<CharT,Traits,Allocator>のパブリックメンバ関数) | |
| C言語のドキュメント (strcspn)
| |