Экспорт (0) Печать
Развернуть все
and
div
eof
not
or
xor
Развернуть Свернуть
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

strchr, wcschr, _mbschr, _mbschr_l

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

Важное примечание Важно

_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 не найден. Нулевой конечный символ включен в поиск.

wcschr , _mbschr и _mbschr_l являются версиями функции strchr для расширенных и многобайтовых символов. Аргументы и возвращаемое значение wcschr представляют собой двухбайтовые строки; аргументы и возвращаемое значение _mbschr представляют собой многобайтовые строки. _mbschr распознает последовательности многобайтовых символов. Кроме того, если строка — нулевой указатель, _mbschr вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, то _mbschr возвращает NULL и устанавливает errno в EINVAL. strchr и wcschr не проверяют свои параметры. В остальных случаях эти три функции ведут себя идентично.

Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.

В языке C эти функции принимают указатель const для первого аргумента. В языке C++ доступны две перегрузки. Перегрузка, принимающая указатель на const, возвращает указатель на const; версия, которая принимает указатель на не являющийся const, возвращает указатель на не const. Макрос _CONST_CORRECT_OVERLOADS определен, если доступны и const и не const версии этих функций. Если требуется не const функциональность для обеих перегрузок C++, укажите символ _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 );
}
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

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft