strchr
, , wcschr
_mbschr
,_mbschr_l
Menemukan karakter dalam string, dengan menggunakan lokal saat ini atau kategori status konversi tertentu LC_CTYPE
.
Penting
_mbschr
dan _mbschr_l
tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
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
Parameter
str
String sumber yang dihentikan null.
c
Karakter yang akan ditemukan.
locale
Lokal untuk digunakan.
Nilai hasil
Masing-masing fungsi ini mengembalikan penunjuk ke kemunculan c
pertama dalam str
, atau NULL
jika c
tidak ditemukan.
Keterangan
Fungsi strchr
menemukan kemunculan c
pertama dalam str
, atau mengembalikan NULL
jika c
tidak ditemukan. Karakter penghentian null disertakan dalam pencarian.
wcschr
, _mbschr
dan _mbschr_l
merupakan versi karakter lebar dan multibyte-character dari strchr
. Argumen dan nilai yang dikembalikan adalah wcschr
string karakter lebar. Argumen dan nilai yang dikembalikan adalah _mbschr
string multibyte-character. _mbschr
mengenali urutan karakter multibyte. Selain itu, jika string adalah penunjuk null, _mbschr
memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, _mbschr
mengembalikan NULL
dan mengatur errno
ke EINVAL
. strchr
dan wcschr
tidak memvalidasi parameternya. Ketiga fungsi ini berulah secara identik jika tidak.
Nilai output dipengaruhi oleh pengaturan LC_CTYPE
kategori lokal; untuk informasi selengkapnya, lihat setlocale
. Versi fungsi-fungsi ini tanpa _l
akhiran menggunakan lokal saat ini untuk perilaku tergantung lokal ini; versi dengan _l
akhiran identik kecuali bahwa mereka menggunakan parameter lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.
Di C, fungsi-fungsi ini mengambil const
penunjuk untuk argumen pertama. Di C++, tersedia dua kelebihan beban. Kelebihan beban yang mengambil pointer untuk const
mengembalikan pointer ke const
; versi yang mengambil pointer ke non-const
mengembalikan pointer ke non-const
. Makro _CRT_CONST_CORRECT_OVERLOADS
didefinisikan jika const
dan non-versiconst
fungsi ini tersedia. Jika Anda memerlukan perilaku non-untukconst
kedua kelebihan beban C++, tentukan simbol _CONST_RETURN
.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcschr |
strchr |
_mbschr |
wcschr |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
strchr |
<string.h> |
wcschr |
<string.h> atau <wchar.h> |
_mbschr , _mbschr_l |
<mbstring.h> |
Untuk informasi selengkapnya tentang kompatibilitas, lihat Kompatibilitas.
Contoh
// 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
Lihat juga
Manipulasi string
Lokal
Interpretasi urutan karakter multibyte
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