String Kütüphanesi
String Kütüphanesi
String kütüphalerinden stdlib.h ve string.h ‘ın fonksiyonları aşağıda incelenmiştir.
String Dönüşüm Fonksiyonları
Aşağıda stdlib string dönüşüm fonksiyonlarını göstermektedir.
double atof (const char *nPtr) ; // nPtr stringini double’a dönüştürür int atoi (const char *nPtr); // nPtr stringini int’e dönüştürür long atol (const char *nPtr); // nPtr stringini long int’e dönüştürür double strtod (const char *nPtr, char ** endPtr); // nPtr stringini double’a dönüştürür. lond strol (const char *nPtr,char **endPtr,int base); // nptr stringini long’a dönüştürür. unsigned long strtoul(const char *nPtr,char **endPtr,int base) // nPtr stringini unsigned long’a dönüştürür.
String İşleme Fonksiyonları
String kütüphanesi, string verilerini ele almak, stringleri karşılaştırmak, stringlerde karakterler ya da başka stringler aramak, stringleri atomlara (stringi mantıklı parçalara bölmek) ayırmak ve stringlerin uzunluğuna karar vermek gibi bir çok kullanışlı fonksiyon sunar.
char *strcpy (char *s1,const char *s2) // s2 stringini s1 dizisi içine kopyalar, s1‘in değeri döndürülür. char *strncpy (char *s1,const char *s2,size_t n) //s2 stringinin en fazla n karakterini s1 dizisi içine kopyalar. s1’in değeri döndürülür. char *strcat (char *s1,const char *s2) //s2 stringini s1 dizisine ekler. s2’nin ilk karakteri s1 dizisinin null karakteri üzerine yazılır. s1’in değeri döndürülür. char *strncat(char *s1,const char *s2,size_t n) //s2 stringinin en fazla n karakterini s1 dizisine keler. s2’nin ilk karakteri s1 dizisinin null karakteri üzerine yazılır. s1’in değeri döndürülür.
strncpy fonksiyonunun ikinci argümanına, sonlandırıcı null karakteri kopyalamak zorunda olmadığına dikkat ediniz. Sonlandırıcı NULL karakter yalnızca, kopyalanacak karakterlerin sayısı dizinin uzunluğundan en az bir büyükse eklenir.
strcpy ve strncpy kullanma
#include <stdio.h> #include <string.h> int main( ) { char x[ ] = "Doğum günün kutlu olsun"; char y[ 25 ], z[ 15 ]; printf( "%s%s\n%s%s\n", "x dizisindeki string: ", x, "y dizisindeki string: ", strcpy( y, x ) ); strncpy( z, x, 11); z[ 11 ] = '\0'; printf( "z dizisindeki string: %s\n", z ); return 0; }
Karşılaştırma Fonksiyonları
string kütüphanesindeki karşılaştırma fonksiyonları, strmp ve strncmp
int strcmp (const char*s1,const char *s2); // s1 stringiyle s2 stringini karşılaştırır. Fonksiyon, s1 s2’ye eşitse 0 , s1 s2’den küçükse 0’dan küçük, s1 s2’den büyükse 0’dan büyük bir değer döndürür. int strcmp (const char*s1, const char *s2, size_t n); // s1 stringinin n karakterine s2 stringiyle karşılaştırır. Fonksiyon, s1 s2’ye eşitse 0 , s1 s2’den küçükse 0’dan küçük,s1 s2’den büyükse 0’dan büyük bir değer döndürür.
strcmp ve strncmp kullanma
#include <stdio.h> #include <string.h> int main( ) { const char *string = "Bu bir testtir"; char character1 = 'u', character2 = 'z'; if ( strchr( string, character1 ) != NULL ) printf( "\'%c\' bu stringte bulundu: \"%s\".\n",character1, string ); else printf( "\'%c\' bu stringte bulunamadı: \"%s\".\n",character1, string ); if ( strchr( string, character2 ) != NULL ) printf( "\'%c\' bu stringte bulundu: \"%s\".\n",character2, string ); else printf( "\'%c\' bu stringte bulunamadı: \"%s\".\n",character2, string ); return 0; }
Arama Fonksiyonları
char * strchr (const char *s, int c); // c‘nin s stringi içindeki ilk konumunu belirler. Eğer c bulunursa, c‘yi gösteren bir gösterici döndürür. Aksinde NULL gösterici döndürülür. size_t strcspn (const char *s1,const char *s2); // s1 stringinde, s2 stringi içindeki karakterlerden oluşmayan ilk kısmı bulur ve bu kısmın uzunluğunu döndürür. char *strpbrk (const char *s1,const char *s2); // s2 içindeki herhangi bir karakterin, s1 stringi içinde yer aldığı ilk konumu bulur. Eğer s2 stringindeki bir karakter s1 içinde bulunursa, s1 içindeki karakteri gösteren bir gösterici döndürür. Aksi takdirde, NULL gösterici döndürür. char *strrchr (const char *s,int c); // s stringi içinde, c karakterinin en son konumunu belirler Eğer c bulunursa, s stringi içindeki c ’yi gösteren bir gösterici döndürülür. Aksi takdirde, NULL gösterici döndürülür. char *strstr (const char *s1,const char *s2); // s2 stringi içinde, s1 dizisinin son konumun belirler. Eğer string bulunursa, s1 stringini gösteren bir gösterici döndürülür. Aksi takdirde, NULL gösterici döndürülür. char *strtok (const char *s1,const char *s2); // Bir dizi strtok çağrısı s1 stringini, s2 içinde belirtilen karakterle ayrılmış bir satırdaki kelimeler gibi mantıklı parçalara ayırır.İlk çağrı ilk argüman olarak s1 alırken, daha sonraki çağrılar ilk argüman olarak NULL alır.Her çağrıda o andaki atomu gösteren bir gösterici döndürülür. Eğer fonksiyon çağrıldığında daha fazla atom yoksa NULL döndürülür.
Hafıza Fonksiyonları
string kütüphanesi fonksiyonları, hafıza bloklarını kullanma, karşılaştırma ve arama işlemlerini gerçekleştirmektedir. Fonksiyonlar, hafıza bloklarına karakter dizileri olarak davranmakta ve böylece veri bloklarını yönetebilmektedir.
void * memcpy (void *s1,const void *s2,size_t n); // s2 ile gösterilen nesneden n karakteri s1 ile gösterilen nesneye kopyalar. Oluşan nesneyi gösteren bir gösterici döndürülür. void *memmove (void *s1,const void *s2,size_t n); // s2 ile gösterilen nesneden n karakteri s1 ile gösterilen nesneye kopyalar. Kopyalama işlemi, s2 ile gösterilen nesnedeki karakterler önce geçici bir diziye kopyalanıp daha sonra da bu geçici diziden s1 ile gösterilen nesneye kopyalanıyormuş gibi yapılır. Sonuçta, oluşan nesneyi gösteren bir gösterici döndürülür. int memcmp(const void *s1,const void *s2,size_t n); // s1 ve s2 ile gösterilen nesnelerin ilk n karakterlerini karşılaştırır. Fonksiyon, s1 s2’ye eşitse 0, s1 s2’den küçükse 0’dan küçük, s1 s2’den büyükse 0’dan büyük bir değer döndürür. void *memchr(void *s,int c,size_t n); // s ile gösterilen nesne içinde c ’in unsigned char’a dönüştürülür ilk bulunduğu konumu belirler. Eğer c bulunursa, nesne içindeki c ’in konumunu gösteren bir gösterici döndürülür. Aksi takdirde, NULL döndürülür. void *memset(void *s,int c,size_t n); // s ile gösterilen nesnenin ilk n karakterine, c unsigned int’e dönüştürülür kopyalar. Sonucu gösteren bir gösterici döndürülür.
Diğer Fonksiyonlar
char *strerror (int errornum); // Sisteme bağımlı olmak üzere, hata sayısını bir metin stringi haline dönüştürür. Stringi gösteren bir gösterici döndürülür. size_t strlen (const char *s); // s stringinin uzunluğunu bulur. null karakterden önceki karakterlerin sayısı döndürülü