strstr
, wcsstr
, _mbsstr
, _mbsstr_l
Bir arama dizesinin dizedeki ilk oluşumunun işaretçisini döndürür.
Önemli
_mbsstr
ve _mbsstr_l
Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
char *strstr(
const char *str,
const char *strSearch
); // C only
char *strstr(
char *str,
const char *strSearch
); // C++ only
const char *strstr(
const char *str,
const char *strSearch
); // C++ only
wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C only
wchar_t *wcsstr(
wchar_t *str,
const wchar_t *strSearch
); // C++ only
const wchar_t *wcsstr(
const wchar_t *str,
const wchar_t *strSearch
); // C++ only
unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C only
unsigned char *_mbsstr(
unsigned char *str,
const unsigned char *strSearch
); // C++ only
const unsigned char *_mbsstr(
const unsigned char *str,
const unsigned char *strSearch
); // C++ only
unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C only
unsigned char *_mbsstr_l(
unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
const unsigned char *_mbsstr_l(
const unsigned char *str,
const unsigned char *strSearch,
_locale_t locale
); // C++ only
Parametreler
str
Arama için null ile sonlandırılan dize.
strSearch
Aranacak null sonlandırılmış dize.
locale
Kullanılacak yerel ayar.
Dönüş değeri
içinde veya içinde str
görünmüyorsa strSearch
str
ilk örneğine strSearch
bir işaretçi NULL
döndürür. Sıfır uzunlukta bir dizeye işaret ederse strSearch
, işlevi döndürür str
.
Açıklamalar
işlevi, strstr
içinde str
ilk geçtiği yeri strSearch
işaret eden bir işaretçi döndürür. Arama null karakterleri sonlandırmayı içermez. wcsstr
, geniş karakterli sürümüdür strstr
ve _mbsstr
çok baytlı karakter sürümüdür. bağımsız değişkenleri ve dönüş değeri wcsstr
geniş karakterli dizelerdir. bağımsız değişkenleri ve dönüş değeri _mbsstr
çok baytlı karakter dizeleridir. _mbsstr
parametrelerini doğrular. veya str
strSearch
iseNULL
, parametre doğrulaması bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, _mbsstr
olarak ayarlanır errno
EINVAL
ve 0 döndürür. strstr
ve wcsstr
parametrelerini doğrulamaz. Bu üç işlev aynı şekilde davranır.
Önemli
Bu işlevler arabellek taşması sorunundan kaynaklanan bir tehdit oluşturabilir. Arabelleğe taşma sorunları, isteğe bağlı kodun yürütülmesine izin verebildiği için sisteme saldırmak için kullanılabilir ve bu da ayrıcalıkların gereksiz bir şekilde yükseltilmesine neden olabilir. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma.
C'de, bu işlevler ilk bağımsız değişken için bir const
işaretçi alır. C++'ta iki aşırı yükleme kullanılabilir. İşaretçiyi öğesine götüren aşırı yükleme işaretçisini const
const
döndürür; işaretçiyi olmayanaconst
götüren sürüm, olmayanaconst
bir işaretçi döndürür. _CRT_CONST_CORRECT_OVERLOADS
Makro, bu işlevlerin const
hem hem de olmayanconst
sürümlerinin kullanılabilir olması durumunda tanımlanır. Her iki C++ aşırı yüklemesi için de olmayan davranışa ihtiyacınızconst
varsa simgesini _CONST_RETURN
tanımlayın.
Çıkış değeri yerel ayar kategorisi ayarından LC_CTYPE
etkilenir; daha fazla bilgi için bkz setlocale
. , _wsetlocale
. Bu işlevlerin son ekine sahip _l
olmayan sürümleri, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; son eki olan _l
sürümler, bunun yerine geçirilen yerel ayar parametresini kullanmaları dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H olağan |
_UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tcsstr |
strstr |
_mbsstr |
wcsstr |
Yok | Yok | _mbsstr_l |
Yok |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
strstr |
<string.h> |
wcsstr |
<string.h> veya <wchar.h> |
_mbsstr , _mbsstr_l |
<mbstring.h> |
Uyumluluk hakkında daha fazla bilgi için bkz . Uyumluluk.
Örnek
// crt_strstr.c
#include <string.h>
#include <stdio.h>
char str[] = "lazy";
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( "String to be searched:\n %s\n", string );
printf( " %s\n %s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "%s found at position %d\n", str, result );
else
printf( "%s not found\n", str );
}
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
lazy found at position 36
Ayrıca bkz.
Dize işleme
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
strcspn
, wcscspn
, _mbscspn
, _mbscspn_l
strcmp
, wcscmp
, _mbscmp
strpbrk
, wcspbrk
, _mbspbrk
, _mbspbrk_l
strrchr
, wcsrchr
, _mbsrchr
, _mbsrchr_l
strspn
, wcsspn
, _mbsspn
, _mbsspn_l
basic_string::find