名前空間
変種
操作

strcspn

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

dest を指すヌル終端バイト文字列の、src を指すヌル終端バイト文字列に含まれる文字 **以外** の文字のみで構成される最大前方部分文字列の長さを返します。

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

目次

[編集] パラメータ

dest - 解析対象のヌル終端バイト文字列へのポインタ
src - 検索対象の文字を含むヌル終端バイト文字列へのポインタ

[編集] 戻り値

src を指すヌル終端バイト文字列に含まれない文字のみで構成される最大前方部分文字列の長さ

[編集] 注釈

関数名は「補数スパン」の略です。なぜなら、この関数は src に含まれない文字を検索するため、それは src の補数にあたるからです。

[編集]

#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標準 (ISO/IEC 9899:2011)
  • 7.24.5.3 The strcspn function (p: 368)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.21.5.3 The strcspn function (p: 331)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 4.11.5.3 The strcspn function

[編集] 関連項目

以下から成る最大の初期セグメントの長さを返す
別のバイト文字列に含まれる文字のみ
(関数) [編集]
以下から成る最大の初期セグメントの長さを返す
他のワイド文字列に見つからないワイド文字のみで構成される
(関数) [編集]
ある文字列に含まれる任意の文字が、別の文字列で最初に出現する位置を見つける
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)