名前空間
変種
操作

std::strcspn

提供: cppreference.com
< cpp‎ | string‎ | byte
ヘッダ <cstring> で定義
size_t strcspn( const char *dest, const char *src );

src の指すバイト文字列内に含まれない文字のみで構成される、 dest の指すバイト文字列の最も長い先頭部分の長さを返します。

関数名の由来は「complementary span」です。

目次

[編集] 引数

dest - 解析するヌル終端文字列を指すポインタ
src - 検索する文字を含むヌル終端バイト文字列を指すポインタ

[編集] 戻り値

src の指すバイト文字列内にない文字のみを含む最も長い先頭部分の長さ。

[編集]

#include <string>
#include <cstring>
#include <iostream>
 
const char* invalid = "*$#";
int main()
{
    std::string s = "abcde312$#@";
 
    size_t valid_len = std::strcspn(s.c_str(), invalid);
    if(valid_len != s.size())
       std::cout << "'" << s << "' contains invalid chars starting at position "
                 << valid_len << '\n';
}

出力:

'abcde312$#@' contains invalid chars starting at position 8

[編集] 関連項目

別のバイト文字列に含まれる文字のみで構成される最も長い先頭部分の長さを返します
(関数) [edit]
別のワイド文字列に含まれないワイド文字のみで構成される先頭部分の最大の長さを返します
(関数) [edit]
区切り文字集合の任意の文字が文字列中に現れる最初の位置を探します
(関数) [edit]
文字が現れる最初の位置を探します
(std::basic_stringのパブリックメンバ関数) [edit]