strchr, wcschr, _mbschr, _mbschr_l

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Находит символ в строке, используя текущий языковой стандарт или указанную категорию состояния преобразования LC_CTYPE.

System_CAPS_ICON_important.jpg Важно

Функции _mbschr и _mbschr_l не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения см. в статье Функции 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, или NULL Если c не найден.

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 идентичны, однако они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Locale.

В языке C, эти функции принимают const указатель для первого аргумента. В C++ доступны две перегрузки. Перегрузка, используя указатель на const возвращает указатель на const; версия, которая принимает указатель на неconst возвращает указатель на неconst. Макрос _CONST_CORRECT_OVERLOADS определяется, если оба const и не-const доступны версии этих функций. Если требуется, отличного отconst _CONST_RETURN символ определить поведение для обеих перегрузок C++.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H_UNICODE и _MBCS не определены_MBCS определено_UNICODE определено
_tcschrstrchr_mbschrwcschr
_ н/дн/д_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 );  
}  

String to be searched:  
      The quick brown dog jumps over the lazy fox  
               1         2         3         4         5  
      12345678901234567890123456789012345678901234567890  
  
Search char:   r  
Result:   first r found at position 12  
Result:   last r found at position 30  

System::String::IndexOf

Управление строками
Языковой стандарт
Интерпретация последовательностей многобайтовых символов
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
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l
strstr, wcsstr, _mbsstr, _mbsstr_l

Показ: