Bagikan melalui


strstr, , wcsstr_mbsstr,_mbsstr_l

Mengembalikan penunjuk ke kemunculan pertama string pencarian dalam string.

Penting

_mbsstr dan _mbsstr_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 *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

Parameter

str
Untai (karakter) yang dihentikan null untuk dicari.

strSearch
Untai (karakter) yang dihentikan null untuk dicari.

locale
Lokal untuk digunakan.

Nilai hasil

Mengembalikan penunjuk ke kemunculan strSearch pertama dalam str, atau NULL jika strSearch tidak muncul di str. Jika strSearch menunjuk ke string dengan panjang nol, fungsi mengembalikan str.

Keterangan

Fungsi strstr mengembalikan penunjuk ke kemunculan strSearch pertama dalam str. Pencarian tidak termasuk mengakhiri karakter null. wcsstr adalah versi karakter lebar dan strstr _mbsstr merupakan versi multibyte-character. Argumen dan nilai yang dikembalikan adalah wcsstr string karakter lebar. Argumen dan nilai yang dikembalikan adalah _mbsstr string multibyte-character. _mbsstr memvalidasi parameternya. Jika str atau strSearch adalah NULL, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter . Jika eksekusi diizinkan untuk melanjutkan, _mbsstr atur errno ke EINVAL dan mengembalikan 0. strstr dan wcsstr tidak memvalidasi parameternya. Ketiga fungsi ini berulah secara identik jika tidak.

Penting

Fungsi-fungsi ini mungkin menimbulkan ancaman dari masalah buffer yang diserbu. Masalah buffer overrun dapat digunakan untuk menyerang sistem karena dapat memungkinkan eksekusi kode sewenang-wenang, yang dapat menyebabkan elevasi hak istimewa yang tidak beralasan. Untuk informasi selengkapnya, lihat Menghindari overruns buffer.

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.

Nilai output dipengaruhi oleh pengaturan LC_CTYPEkategori lokal ; untuk informasi selengkapnya, lihat setlocale, _wsetlocale. Versi fungsi ini yang tidak memiliki _l akhiran menggunakan lokal saat ini untuk perilaku dependen lokal ini; versi yang memiliki _l akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan. Untuk informasi selengkapnya, lihat Lokal.

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
_tcsstr strstr _mbsstr wcsstr
n/a n/a _mbsstr_l n/a

Persyaratan

Rutin Header yang diperlukan
strstr <string.h>
wcsstr <string.h> atau <wchar.h>
_mbsstr, _mbsstr_l <mbstring.h>

Untuk informasi selengkapnya tentang kompatibilitas, lihat Kompatibilitas.

Contoh

// 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

Lihat juga

Manipulasi string
Lokal
Interpretasi urutan karakter multibyte
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