名前空間
変種
操作

strcspn

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

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

dest または src がヌル終端バイト文字列を指すポインタでない場合、動作は未定義です。

目次

[編集] 引数

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

[編集] 戻り値

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

[編集] ノート

関数名の由来は「complementary span」です。 src に含まれない文字、つまり src の complement (補集合) を検索するためです。

[編集]

#include <string.h>
#include <stdio.h>
 
int main(void)
{
    const char *string = "abcde312$#@";
    const char *invalid = "*$#";
 
    size_t valid_len = strcspn(string, invalid);
    if(valid_len != strlen(string))
       printf("'%s' contains invalid chars starting at position %zu\n",
               string, valid_len);
}

出力:

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

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.24.5.3 The strcspn function (p: 368)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.21.5.3 The strcspn function (p: 331)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.11.5.3 The strcspn function

[編集] 関連項目

別のバイト文字列に含まれる文字のみで構成される最も長い先頭部分の長さを返します
(関数) [edit]
別のワイド文字列に含まれないワイド文字のみで構成される先頭部分の最大の長さを返します
(関数) [edit]
文字列中の任意の文字が別の文字列中に現れる最初の位置を探します
(関数) [edit]