C

wcsnlen_s

wcslen, wcsnlen_s

在头文件中定义
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是空指针,则函数返回零,如果strsz在第一个strsz宽字符中未找到空宽字符,则返回值为src所有边界检查的函数,wcsnlen_s只有__STDC_LIB_EXT1__在由实现定义,如果用户在包含之前定义__STDC_WANT_LIB_EXT1__为整数常量。1wchar.h

参数

str-指向要检查的以空字符结尾的宽字符串
strsz-最大数量的宽字符进行检查

返回值

1)以空字符结束的宽字符串的长度str

2)str成功时以空字符结尾的宽字符串的长度,如果str为空指针,strsz则为零,如果未找到空宽字符。

注意

strnlen_s并且wcsnlen_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):

另请参阅

strlenstrnlen_s(C11)返回给定字符串的长度(函数)

| C ++文档wcslen |