strchr, wcschr, _mbschr, _mbschr_l
Geçerli yerel ayarı veya belirtilen LC_CTYPE dönüştürme durumu kategori kullanarak bir dize içinde bir karakter bulur.
Önemli |
---|
_mbschr ve _mbschr_l Windows Çalışma Zamanı'nda yürütülen uygulamalarda kullanılamazlar.Daha fazla bilgi için bkz /ZW ile desteklenmeyen CRT işlevleri. |
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
Parametreler
str
Null ile sonlandırılmış kaynak dizesi.c
Karakter yerleştirilecek.locale
Kullanılacak yerel ayar.
Dönüş Değeri
Bu işlevlerden her biri ilk geçtiği için bir işaretçi döndürür c de str, veya NULL , c bulunamadı.
Notlar
strchr İşlev ilk geçtiği bulur c içinde str, veya geri döndürür NULL , c bulunamadı.Boş sonlandırma karakterinin aramaya dahil edilir.
wcschr, _mbschr ve _mbschr_l geniş karakter ve çok baytlı karakter sürümü olan strchr.Bağımsız değişkenler ve wcschr dönüş değeri geniş karakterli dizelerdir; _mbschr dizeleri çok baytlı karakter dizeleridir._mbschrçok baytlı karakter dizileri tanır.Ayrıca, dize bir null işaretçi ise _mbschr açıklandığı gibi geçersiz bir parametre işleyiciyi çağırır Parametre Doğrulama.Yürütmenin devam etmesine izin verilirse, _mbschrNULL döndürür ve errno öğesini EINVAL olarak ayarlar.strchr ve wcschr kendi parametrelerini doğrulamazlar.Bu üç işlev, aynı şekilde davranır.
Çıkış değeri yerel verinin LC_CTYPE kategori ayarından etkilenir, daha fazla bilgi için bkz setlocale.Bu işlevlerin, _l sonekine sahip olmayan sürümleri, yerel ayara bağlı davranışı için, geçerli yerel ayarı kullanır; _l sonekine sahip sürümler, bunun yerine iletilmiş yerel ayar parametresini kullanması hariç aynıdır.Daha fazla bilgi için bkz. Yerel Ayar.
C'de bu işlevler ilk bağımsız değişken için const işaretçisini alır.C++ programında iki aşırı yüklemesi kullanılabilir.const'a bir işaretçi alan aşırı yükleme, const'a bir işaretçi geri döndürür; const olmayan bir işaretçiye alan sürüm ise const olmayan bir işaretçi geri döndürür._CONST_CORRECT_OVERLOADS makrosu eğer bu işlevlerin hemconst hem const olmayan sürümleri kullanılabilir ise tanımlanabilir.Her iki C++ aşırı yükü için const dışı davranış gerekiyorsa _CONST_RETURN sembolünü tanımlayın.
Genel Metin Yordam Eşleşmeleri
TCHAR.H yordamı |
_UNICODE & _MBCS tanımlanmamış |
_MBCS tanımlanmış |
_UNICODE tanımlanmış |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
_ yok |
n/a |
_mbschr_l |
n/a |
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
strchr |
<string.h> |
wcschr |
<string.h> or <wchar.h> |
_mbschr, _mbschr_l |
<mbstring.h> |
Uyumluluk hakkında daha fazla bilgi için bkz. Uyumluluk.
Örnek
// 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 Eşdeğeri
Ayrıca bkz.
Başvuru
Çok Baytlı Karakter Sıralarının Yorumu
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