使用当前区域设置或指定的 LC_CTYPE 转换状态类别,会在字符串中的字符。
 重要事项 | 
|---|
_mbschr 和 _mbschr_l 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。  | 
char *strchr(
   const char *str,
   int c 
);  // C only
char *strchr(
   char * str,
   int c 
); // C++ only
const char *strchr(
   const char * str,
   int c 
); // C++ only
wchar_t *wcschr(
   const wchar_t *str,
   wchar_t c 
); // C only
wchar_t *wcschr(
   wchar_t *str,
   wchar_t c 
);  // C++ only
const wchar_t *wcschr(
   const wchar_t *str,
   wchar_t c 
);  // C++ only
unsigned char *_mbschr(
   const unsigned char *str,
   unsigned int c 
); // C only
unsigned char *_mbschr(
   unsigned char *str,
   unsigned int c 
); // C++ only
const unsigned char *_mbschr(
   const unsigned char *str,
   unsigned int c 
); // C++ only
unsigned char *_mbschr_l(
   const unsigned char *str,
   unsigned int c,
   _locale_t locale
); // C only 
unsigned char *_mbschr_l(
   unsigned char *str,
   unsigned int c,
   _locale_t locale
); // C++ only
const unsigned char *_mbschr_l(
   const unsigned char *str,
   unsigned int c,
   _locale_t locale
); // C++ only
参数
str
null 终止的源字符串。c
要放置的字符。locale
使用的区域设置。
返回值
;如果未找到,这些函数都返回一个指向 c 第一个匹配项 str的或 NULLc。
备注
strchr 功能来查找 c 第一个匹配项 str的,或者返回 NULL,如果未找到 c。null 终止字符在搜索中。
wcschr、_mbschr 和 _mbschr_l 是 strchr的宽字符和多字节字符版本。参数和返回 wcschr 的值是宽字符字符串;这些 _mbschr 的多字节字符字符串。_mbschr 识别多字节字符序列。此外,如果该字符串为 null 指针,_mbschr 调用无效参数处理程序,如 参数验证所述。如果执行允许继续,_mbschr 返回 NULL 并将 errno 到 EINVAL。strchr 和 wcschr 不验证方法的参数。这三个功能否则具有相同的行为。
输出值受设置 LC_CTYPE 类设置的影响区域设置;有关更多信息,请参见 setlocale。这些功能的版本不 _l 后缀为该区域设置相关的行为使用当前区域设置;与 _l 后缀的版本相同,只不过它们使用传入的区域设置参数。有关更多信息,请参见区域设置。
在 C 中,这些函数采用第一个参数的一 const 指针。在 C++ 中,两个超加载可用。采用指针的超加载到 const 返回指向 const;采用指向非const 的版本返回指向非const。如果 const 和这些功能的非const 的版本,宏_CONST_CORRECT_OVERLOADS 定义。如果对它们 C++ 超加载需要非const 行为,请定义符号_CONST_RETURN。
一般文本例程映射
TCHAR.H 实例  | 
未定义的_UNICODE & _MBCS  | 
定义的_MBCS  | 
定义的_UNICODE  | 
|---|---|---|---|
_tcschr  | 
strchr  | 
_mbschr  | 
wcschr  | 
_n/a  | 
无  | 
_mbschr_l  | 
无  | 
要求
实例  | 
必需的标头  | 
|---|---|
strchr  | 
<string.h>  | 
wcschr  | 
<string.h> 或 <wchar.h>  | 
_mbschr, _mbschr_l  | 
<mbstring.h>  | 
有关兼容性的更多信息,请参见 兼容性。
示例
// crt_strchr.c
// 
// This program illustrates searching for a character
// with strchr (search forward) or strrchr (search backward).
//
#include <string.h>
#include <stdio.h>
int  ch = 'r';
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] =   "         1         2         3         4         5";
char fmt2[] =   "12345678901234567890123456789012345678901234567890";
int main( void )
{
   char *pdest;
   int result;
   printf_s( "String to be searched:\n      %s\n", string );
   printf_s( "      %s\n      %s\n\n", fmt1, fmt2 );
   printf_s( "Search char:   %c\n", ch );
   // Search forward. 
   pdest = strchr( string, ch );
   result = (int)(pdest - string + 1);
   if ( pdest != NULL )
      printf_s( "Result:   first %c found at position %d\n", 
              ch, result );
   else
      printf_s( "Result:   %c not found\n", ch );
   // Search backward. 
   pdest = strrchr( string, ch );
   result = (int)(pdest - string + 1);
   if ( pdest != NULL )
      printf_s( "Result:   last %c found at position %d\n", ch, result );
   else
      printf_s( "Result:\t%c not found\n", ch );
}
.NET Framework 等效项
请参见
参考
strcspn, wcscspn, _mbscspn, _mbscspn_l
strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l
重要事项