Karakter ve String Fonksiyonları
Karakter ve String Fonksiyonları
atoi,atol,atoi32
String ifadeleri tamsayı ifadelerine çevirmek için kullanılır. Bu komutun kullanılabilmesi için C programlama dilinde hatırlanacağı üzere string ifadesi kullanırken stdlib.h kütüphanesinin tanımlanması gerekir.
Kullanımı:
/* 8 bit’lik değişken */ ismi=atoi(string ifade) /* 16 bit’lik değişken */ ismi=atol(string ifade) /* 32 bit’lik değişken */ ismi=atoi32(string ifade)
atof
String ifadeyi tamsayıya çeviren koddur. Bu çevrimin sonucu 32 bit’lik ondalıklı sayıdır. Daha önce hatırlayacağımız gibi C programlama dilinde string ifadelerin kullanılması için stdlib.h kütüphanesinin tanımlamaması gerekir.
Kullanımı:
/* 32 bit ondalıklı */ değişken =atof(string ifadesi); char kelime[]={“145.876”}; float k; k=atof(data);
İs Ön Komutu İle Başlayanlar
İs ön komutu ile başlayan komutlar belirtilen değerlerin istenen kriterler uygun olup olmadığını kontrol eder.Bu komutların kullanıla bilmesi için programın başında ctype.h kütüphanesin programın başına eklenmesi gerekir. Belirtilen şart doğru ise 1 yanlış ise 0 olarak geri döner. Parantez içine 8 bit’lik karakterler yazılır.
isalnum(a): /* a yerine yazılan karakterin büyük veya küçük harf ve rakam mı olup olmadığını kontrol eder.*/ isalpha(a): /* a yerine yazılan karakterin büyük veya küçük harf olup olmadığını kontrol eder. */ isdigit(a): /* a yerine yazılan karakterin rakam olup olmadığına bakılır. */ islower(a): /* a yerine yazılan karakterin küçük harf olup olmadığını kontrol eder. */ isupper(a): /* a yerine yazılan karakterin büyük harf olup olmadığını kontrol eder. */ isspace(a): /* a karakterinin boşluk karakteri olup olmadığını kontrol eder. */ isxdigit(a): /* a yerine yazılan hexadesimal karakterin büyük veya küçük harf veya rakam olup olmadığını kontrol eder. */ iscntrl(a): /* a yerine yazılan karakterin ASCII değer olarak boşluk karakterinden küçüklüğünü kontrol eder. */ isgraph(a): /* a yerine yazılan karakterin ekranda görülebilen bir karakter (boşluk karakteri dahil ) olup olamadığının ASCII dğer olarak boşluk karakterinden büyük olduğunun kontrolünü yapar. */ isprint(a): /*a yerine yazılan karakterin ekranda görülebilen bir karakter boşluk karakteri dahil olup olmadığını ASCII değer olarak boşluk karakterinden büyük veya eşit olduğunun doğruluğunu kontrol eder. */ ispunct(a): /* a yerine yazılan karakterin noktalama karakteristiğinden olup olmadığını kontrol eder. */ a=isalnum(‘c’); // a=1; a=isdigit(43); // a=0 olur Desimal olarak ASCII 43 + karakterine eşittir.
Yukarıdaki örneklerde görüleceği gibi parpntez içine girilen karakterler ‘ ‘ tek tırnak içinde gösterilir. Parantez içinde karakterler karşılık gelen ASCII kodları desimal veya hexadesimal karşılıkları yazılabilir.
Tollower
Harfleri küçük harfe çevirme komutudur. Bu komutun kullanıla bilmesi için ctype.h kütüphanesinin tanımlanması gerekir.
Kullanımı:
değişken ismi=tolower (değer); a=tolower(‘D’); // a’nın değeri d olur.
Toupper
Harfleri büyük harfe çeviren komuttur. Bu komutun kullanıla bilmeis için ctype.h kütüphanesinin programın başında tanımlanması gerekir.
Kullanımı:
değişken ismi=toupper(deger); a=toupper(‘r’); // a’nın değeri R olur.
İsamoung
Bir karakterin verilen string ifade içerisinde olup olamadığını kontrol eder. Varsa 1 yoksa 0 değeri döndürür.
Kullanımı:
değişken ismi=isamoung(karakter,string); char a=’B’; x=isamoung(ch,”ABC”); // x =1 olur.
St Ön Komutu İle Başlayanlar
St ön kodu ile başlayan komutlar string ifadelerle ilgili bazı işlemlerin yapılmasını sağlar. Bu fonksiyonların kullanımı için string.h kütüphanesinin program başında tanımlanması gerekir.
strcat(s1,s2): /* s2 olan string ifadeyi s1 olan stirn ifadenin sonuna kopyalar. Adres olarak s1 string’inin başlangıç adresini alır.*/ strchr(s1,c): /* s1 strin’ginin içerisinde c karakterini arar, bulursa karakterin adresi ile bulamazsa NULL(//0) karakteri ile geri döner. Birden fazla bulursa ilk karakterim adresi ile geri döner. */ strrchr(s1,c): /* s1 string’inin içinde c karakterini arar. Aranan karakter bulunursa bulunan karakterin adresi ile bulunamasa NULL(//0) karakteri ile geri döner. strchr fonksiyonunda farkı birden fazla aranan karakterden bulursa son karakterin adresi ile geri döner. */ stcmp(s1,s2): /* s1 stringi ile s2 sitringini karşılaştırır. s1>s2 ise +1 ile s1<s2 ise -1 ile eşit ise 0 ile geri döner. Karşılaştırma işlemi ASCII tablosununa göre yapar sırası ile ilk harften başlayarak harf harf karşılaştırır ve harfin sayısal karşılığı büyük olan string daha büyük kabul edilir. */ strncmp(s1,s2,n): /* s1 stringinin s2 strinigi ile n (n bir sayıdır o adetçe karşılaştırma yapılır) karakterini karşılaştırır. s1′inilk n karakteri s2‘nin n karakterinden büyük ise pozitif bir değer, ile küçük ise negatif bir değer ile, eşit ise sıfır ile geri döner. */ stricmp(s1,s2): /* strcmp komutu ile aynı işlevi görür.. karşılaştırma yaparken büyük, küçük harf duyarlılığı yoktur. */ strcpy(s1,s2): /* s2 stringini s1 stiring’inin üzerine kopyalar */ strncpy(s1,s2,n): /* s2 ile belirtilen stringin ilk n karakterini s1 ile belirtilen stringe kopyalar. Fonksiyon geri dönüş değeri s1 adresidir. */ strcspn(s1,s2): /* s2 striniginin içinde herhangi bir karakterin s1 içinde ilk göründüğü yerin dizi sırasını verir. */ strspn(s1,s2): /* strcspn() fonksiyonunun tam tersi işlevi gerçekleştirir. s2 stringini içindeki herhangi bir karakterin s1 stringi içinde ilk görünmediği yerin dizi sırasını verir. */ strlen(s1): /* s1 stringinin uzunluğunu verir. */ strlwr(s1): /* s1 stringi içindeki büyük harfleri küçük harfe çevirir. İngilizce karakter alfabesi için geçerlidir.*/ strpbrk(s1,s2): /* s2 stringinin içindeki herhangi bir karakteri s1 stringi içerisinde ilk gördüğü yerin adresini verir. */ strstr(s1,s2): /* s2 stringini s1 stringi içerisinde arar,bulursa bulduğu yerin adresini ,bulamaz ise NULL(/0) değeri ile döner. */ strncat(s1,s2,c): /* s2 stringinin ilk n karakterini s1 stringinin sonuna kopyalar Fonksiyon s1 dizisinin başlangıç adresi ile geri döner. */ strcoll(s1,s2): /* strcmp() ile aynı işlevi gerçekleştirir,farklı olarak bu fonksiyon karşılaştırma işlevini o an geçerli yerel karakter kümesine göre yapar. Karşıtlaştırmanızı kendi alfabetik harf sıranıza göre yapabilirsiniz. */ strxfrm(s1,s2,n): /* Elemanları geçerli olan bir karakter kümesinde (ASCII gibi) farklı olan s2 stringinin ilk n karakterini geçerli bir biçime dönüştürür ve s1 stringi üzerine kopyalar. Fonksiyon n değeri ile geri döner. */
İtoa
itoa(sayi,10,dizi_1) üç parametreden oluşan bu fonksiyon ilk verilen parametre ile verilen sayıyı ikinci parametre ile belirtile sayı sisteminde (2’lik, 10’luk vb.) bir string değere dönüştürür ve üçüncü parametre ile belirtilmiş string dizisine kaydeder.
Bu fonksiyonun programda kullanıla bilmesi için stdlib.h kütüphanesinin program başında tanıtılması gerekir.(#include)
Kullanımı:
string dizi ismi=itoa ( int32 sayı,sayı sistemi,string dizi ismi) int32 sayi=9876; char dizi_1[5]; itoa (sayi,8,dizi_1); // 8’lik tabanda sayi ifadesi dizi_2 kopyalandı dizi_2=”23224″
Mem Ön Komutu İle Başlayanlar
memcpy(s1,s2, transfer edilecek byte sayısı); memmove(s1,s2, transfer edilecek byte sayısı);
Bu fonksiyonlar, s2 başlangıç adresinden başlayarak, transfer edilecek byte sayısı kadar veriyi s1 ile belirtilen adresten kopyalar. Fonksiyonun geri dönüş değeri s2 ile belirtilen kaynağın başlangıç adresidir.
Bu fonksiyonun kullanımı için #includekütüphanesi program başında tanıtılmalı.
s1 ve s2 direkt olarak bir string ifadeyi değilde
(“turkmuhendis”),
s1=[]={“ali”}
gibi veya bir işaretçi ismini ifade etmektedir.
memcmp (s1,s2,n) /* s1 string ifadesi ile ,s2 string ifadesinin ilk n karakterini karşılaştırır. Eğer s1>s2 ise +1 s1<s2 ise -1 ile s1=s2 ise 0(sıfır) geri döner. */
Bu fonksiyonun kullanımı için #includekütüphanesi program başında tanıtılmalı.
memchr(s1,’c’,n) /* s1 string ifadesi içinde, n sayıda karakterinde ‘c’ karakteri arar. Fonksiyon aranan karakter bulamazsa sıfır(0) ile bulursa ilk bulduğu aranan harfin adresi ile geri döner. */
Bu fonksiyonun kullanımı için #includekütüphanesi program başında tanıtılmalı.