strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l

Bir dizenin karakterlerini ekler.Bu işlevlerin daha güvenli sürümleri mevcuttur, bkz. strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l.

Önemli notÖnemli

_mbsncat ve _mbsncat_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 *strncat(
   char *strDest,
   const char *strSource,
   size_t count 
);
wchar_t *wcsncat(
   wchar_t *strDest,
   const wchar_t *strSource,
   size_t count 
);
unsigned char *_mbsncat(
   unsigned char *strDest,
   const unsigned char *strSource,
   size_t count
);
unsigned char *_mbsncat_l(
   unsigned char *strDest,
   const unsigned char *strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
char *strncat(
   char (&strDest)[size],
   const char *strSource,
   size_t count 
); // C++ only
template <size_t size>
wchar_t *wcsncat(
   wchar_t (&strDest)[size],
   const wchar_t *strSource,
   size_t count 
); // C++ only
template <size_t size>
unsigned char *_mbsncat(
   unsigned char (&strDest)[size],
   const unsigned char *strSource,
   size_t count
); // C++ only
template <size_t size>
unsigned char *_mbsncat_l(
   unsigned char (&strDest)[size],
   const unsigned char *strSource,
   size_t count,
   _locale_t locale
); // C++ only

Parametreler

  • strDest
    Null ile sonlandırılmış hedef dize.

  • strSource
    Null ile sonlandırılmış kaynak dizesi.

  • count
    Sona eklenecek karakter sayısı.

  • locale
    Kullanılacak yerel ayar.

Dönüş Değeri

Hedef dizeye bir işaretçi döndürür.Bir hata gösterecek bir dönüş değeri ayrılmamış.

Notlar

strncat işlevi ekleniyor, en çok, strSource'un ilk count karakteri strDest'a.strSource'ın ilk karakteri strDest'ın son karakterinin üzerine yazar.count karakterler eklenmeden önce strSource içinde bir boş karakter görünürse, strncatstrSource öğesindeki tüm karakterleri boş karaktere kadar ekler.count uzunluğu strSource uzunluğundan büyükse, count yerine strSource uzunluğu kullanılır.Her durumda ortaya çıkan dize bir null karakterle sonlandırılır.Çakışan dizeler arasında kopyalama yer alırsa davranış tanımsızdır.

Güvenlik NotuGüvenlik Notu

strncat, strDest içinde yeterli yer olup olmadığını denetlemez; bu yüzden arabellek taşmalarına neden olabilir.count eklenen karakter sayısını sınırladığını unutmayın; bunun yanı sıra strDest boyutunu da sınırlar.Aşağıdaki örneğe bakın.Daha fazla bilgi için, bkz. Arabellek Taşmalarını Önleme.

wcsncat ve _mbsncatstrncat öğesinin geniş karakter ve çok baytlı karakter sürümleridir.Dize bağımsız değişkenleri ve wcsncat dönüş değeri geniş karakterli dizelerdir; _mbsncat dizeleri çok baytlı karakter dizeleridir.Bu üç işlev, aynı şekilde davranır.

Çıkış değeri, yerel ayarın 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++ programında, bu işlevlerde şablon aşırı yüklemesi vardır.Daha fazla bilgi için bkz. Güvenli Şablon Aşırı Yüklemeleri.

Genel Metin Yordam Eşleşmeleri

TCHAR.H yordamı

_UNICODE & _MBCS tanımlanmamış

_MBCS tanımlanmış

_UNICODE tanımlanmış

_tcsncat

strncat

_mbsnbcat

wcsncat

_tcsncat_l

_strncat_l

_mbsnbcat_l

_wcsncat_l

[!NOT]

_strncat_l ve _wcsncat_l öğelerinin yerel bağımlılığı yoktur ve doğrudan çağrılmak için değildirler.İç kullanım için _tcsncat_l tarafından sağlanırlar.

Gereksinimler

Yordam

Gerekli başlık

strncat

<string.h>

wcsncat

<string.h> or <wchar.h>

_mbsncat

<mbstring.h>

_mbsncat_l

<mbstring.h>

Ek uyumluluk bilgileri için bkz. Uyumluluk.

Örnek

// crt_strncat.c
// Use strcat and strncat to append to a string.
#include <stdlib.h>

#define MAXSTRINGLEN 39

char string[MAXSTRINGLEN+1];
// or char *string = malloc(MAXSTRINGLEN+1);

void BadAppend( char suffix[], int n )
{
   strncat( string, suffix, n );
}

void GoodAppend( char suffix[], size_t n )
{
   strncat( string, suffix, __min( n, MAXSTRINGLEN-strlen(string)) );
}

int main( void )
{
   string[0] = '\0';
   printf( "string can hold up to %d characters\n", MAXSTRINGLEN );

   strcpy( string, "This is the initial string!" );
   // concatenate up to 20 characters...
   BadAppend( "Extra text to add to the string...", 20 );
   printf( "After BadAppend :  %s (%d chars)\n", string, strlen(string) );

   strcpy( string, "This is the initial string!" );
   // concatenate up to 20 characters...
   GoodAppend( "Extra text to add to the string...", 20 );
   printf( "After GoodAppend:  %s (%d chars)\n", string, strlen(string) );
}

Çıktı

string can hold up to 39 characters
After BadAppend :  This is the initial string!Extra text to add to (47 chars)
After GoodAppend:  This is the initial string!Extra text t (39 chars)

BadAppend öğesinin arabellek taşmasına neden olduğunu unutmayın.

.NET Framework Eşdeğeri

System::String::Concat

Ayrıca bkz.

Başvuru

Dize Düzenlemesi (CRT)

_mbsnbcat, _mbsnbcat_l

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strcpy, wcscpy, _mbscpy

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l

Yerel Ayar

Çok Baytlı Karakter Sıralarının Yorumu