<string.h> olan başlık içinde standart C kütüphanesinde arasında C dili , tanımları içerir makrolar , sabitler ve beyanlarına fonksiyonları manipülasyon için sadece kullanılan ve türleri karakter dizeleri çeşitli için de, ancak hafıza manipülasyon fonksiyonlar .
Bir parçası olarak beri string.h ilan fonksiyonları son derece yararlıdır standart C kütüphanesinde , onlar destekler C dili. Ancak, bazı güvenlik sorunları gibi, bu işlevler ile var olduğunu herhangi bir platformda çalışması kesindir tampon taşmaları , potansiyel müşteriler programcıların daha güvenli, ancak belki de daha az taşınabilir çözümleri tercih etmeleri. Ek olarak, bu işlevler yalnızca ASCII veya ISO-8859-1 gibi benzer kodlamalarla uyumludur ; UTF-8 gibi çok baytlı karakter kodlamaları, dizelerin "uzunluğunun" bir dizi unicode karakter yerine bir bayt sayısı olarak yorumlanması sorununa sahiptir . ASCII türü olmayan dizelerin işlenmesi genellikle wchar.h aracılığıyla yapılır.
Soyadı | Notlar |
---|---|
NULL | boş göstericiyi ifade eden makro, bu sabit, bellekte geçerli bir adres veya nesne belirlemediğinden emin olduğumuz işaretçinin değerini temsil eder. |
size_t | sizeof operatörünün sonucuyla eşleşen işaretsiz bir tamsayı |
Soyadı | Notlar |
---|---|
void *memcpy(void *dest, const void *src, size_t n); | n baytları iki hafıza alanı arasında kopyala , ki bunlar örtüşmemelidir |
void *memmove(void *dest, const void *src, size_t n); | n baytları iki bellek alanı arasında kopyalayın ; memcpy'den farklı olarak, bellek alanları çakışabilir |
void *memchr(const void *s, int c, size_t n); | Bir ilk geçtiği işaretçi olarak döner C arasında ilk n bayt s veya NULL halinde c bulunamazsa |
int memcmp(const void *s1, const void *s2, size_t n); | iki hafıza alanının ilk n karakterini karşılaştırın |
void *memset(void *, int, size_t); | bir hafıza alanını bir karakterin tekrarıyla doldurur |
char *strcat(char *dest, const char *src); | src dizgesini dest sonrasında bitiştirir |
char *strncat(char * dest, const char * src, size_t n); | dize en fazla n karakter bitiştirir src sonra dest |
char *strchr(const char *, int); | Bir dizede bir karakter arar ve baştan başlayarak karaktere bir işaretçi döndürür. |
char *strrchr(const char *, int); | strchr ile aynı, sondan ara |
int strcmp(const char *, const char *); | iki dizgeyi sözcüksel olarak karşılaştırır |
int strncmp(const char *, const char *, size_t n); | Karşılaştırmak ilk n lexicographic sırasını kullanarak ikiden fazla dizeleri bayt |
int strcoll(const char *, const char *); | sözlük sırasını kullanarak iki dizeyi karşılaştırın |
char *strcpy(char *toHere, const char *fromHere); | bir bölgeden diğerine bir karakter dizisi kopyala |
char *strncpy(char *toHere, const char *fromHere, size_t n); | bir dizenin en fazla n karakterini bir bölgeden diğerine kopyalayın |
char *strerror(int); | bir hata numarasına karşılık gelen karakter dizesini döndürür |
size_t strlen(const char *); | bir dizenin uzunluğunu döndürür |
size_t strspn(const char *s, const char *accept); | maksimum ilk alt büyüklüğünü belirler s bulunan tek karakterleri içeren kabul |
size_t strcspn(const char *s, const char *reject); | reddedilen karakterleri içermeyen s'nin maksimum başlangıç alt dizesinin boyutunu belirler |
char *strpbrk(const char *s, const char *accept); | Bir ilk rastlanılan kabul karakteri de s |
char *strstr(const char *haystack, const char *needle); | dizisi içindeki ilk bulan iğne içinde ot yığını dize |
char *strtok(char *, const char *); | bir dizeyi sözcüksel öğelere ayırır. Not: işlev, parametre olarak iletilen dizeyi değiştirir. |
size_t strxfrm(char *dest, const char *src, size_t n); | dönüşümü src dönüştürülmüş dize için sözlük sırasında sıralamaya sözlük sırasında sıralama eşdeğerdir böylece src . |
Soyadı | Notlar | Şartname |
---|---|---|
char *strdup(const char *); | bellekte bir dizge ayırmak ve çoğaltmak | POSIX ; başlangıçta BSD'nin bir uzantısı |
errno_t strcpy_s(char *restrict s1, rsize_t s1max, const char *restrict s2); | strcpybellekteki boyutları kontrol eden değişken | ISO / IEC WDTR 24731 |
void *mempcpy(void *dest, const void *src, size_t n); | memcpyson yazılanın ardından bayta bir işaretçi verme varyantı | GNU |
void *memccpy(void *dest, const void *src, int c, size_t n); | en kopyalama n örtüşme, durdurma karakter olmamalıdır, ki bunlar, iki bellek alanı arasında bayt C bulunduğunda | UNIX 98? |
int strerror_r(int, char *, size_t); | Kullanıcı tanımlı bir arabellekteki ( strerror()iş parçacığı uyumlu sürümü ) bir hata kodunun dize temsilini döndürür . GNU sürümü, hatayı temsil eden dizgeye bir gösterici döndürür. | XSI, POSIX |
size_t strlcpy(char *dest, const char *src, size_t n); | strcpytahsis edilen bölgelerin boyutunu kontrol eden varyantı | orijinal olarak OpenBSD , ayrıca FreeBSD , Solaris , Mac OS X |
char *strtok_r(char *, const char *, char **); | strtok'un iş parçacığı uyumlu versiyonu | POSIX |
char *strsignal(int sig); | strerror gibi , bir sinyalin metinsel bir tanımını döndürür (işlem, iş parçacıklarıyla garanti edilmez) | BSD'ler, Solaris, Linux |