名前空間
変種
操作

wcslen, wcsnlen_s

From cppreference.com
< c‎ | string‎ | wide
 
 
 
 
ヘッダー <wchar.h> で定義
size_t wcslen( const wchar_t *str );
(1) (C95 以降)
size_t wcsnlen_s(const wchar_t *str, size_t strsz);
(2) (C11 以降)
1) ワイド文字列の長さを返します。つまり、終端のヌルワイド文字の前に来る非ヌルワイド文字の数です。
2) (1) と同じですが、str がヌルポインタの場合はゼロを返し、src の最初の strsz ワイド文字内にヌルワイド文字が見つからなかった場合は strsz を返します。
すべての境界チェックされた関数と同様に、wcslen_s は、実装によって __STDC_LIB_EXT1__ が定義されており、ユーザーが <stdio.h> をインクルードする前に __STDC_WANT_LIB_EXT1__ を整数定数 1 に定義した場合にのみ利用できることが保証されます。

目次

[編集] パラメータ

str - 検査するヌル終端ワイド文字列へのポインタ
strsz - 検査するワイド文字の最大数

[編集] 戻り値

1) ヌル終端ワイド文字列 str の長さ。
2) 成功した場合はヌル終端ワイド文字列 str の長さ、str がヌルポインタの場合はゼロ、ヌルワイド文字が見つからなかった場合は strsz

[編集] 備考

strnlen_swcsnlen_s は、ランタイム制約ハンドラを呼び出さない唯一の境界チェックされた関数です。これらは、ヌル終端されていない文字列の限られたサポートを提供するために使用される純粋なユーティリティ関数です。

[編集]

#include <wchar.h>
#include <stdio.h>
 
int main(void)
{
    wchar_t str[] = L"How many wide characters does this string contain?";
 
    printf("without null character: %zu\n", wcslen(str));
    printf("with null character: %zu\n", sizeof str / sizeof *str);
}

出力

without null character: 50
with null character: 51

[編集] 参照

  • C11標準 (ISO/IEC 9899:2011)
  • 7.29.4.6.1 wcslen 関数 (p: 439)
  • K.3.9.2.4.1 wcsnlen_s 関数 (p: 646-647)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.24.4.6.1 wcslen 関数 (p: 385)

[編集] 関連項目

与えられた文字列の長さを返す
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)