1 / 56

Bölüm 8 - Karakterler ve Dizgiler

Bölüm 8 - Karakterler ve Dizgiler. İndex 8.1 Giri ş 8.2 Dizgiler ve Karakterler in kuralları 8.3 K arakter İşleme Kütüphane si 8.4 Dizgi Değiştirme Fonksiyonlar ı 8.5 Standar t Input/Output Kütüphane Fonksiyonlar ı 8.6 Dizgi işleme Kütüphane sinin Dizgi işletme Fonksiyonlar ı

larue
Download Presentation

Bölüm 8 - Karakterler ve Dizgiler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bölüm 8 - Karakterler ve Dizgiler İndex 8.1 Giriş 8.2 Dizgiler ve Karakterlerin kuralları 8.3 Karakter İşleme Kütüphanesi 8.4 Dizgi Değiştirme Fonksiyonları 8.5 Standart Input/Output Kütüphane Fonksiyonları 8.6 Dizgi işleme Kütüphanesinin Dizgi işletme Fonksiyonları 8.7 Dizgi Karşılaştırma Fonksiyonları 8.8 Dizgi işleme Kütüphanesinin Arama Fonksiyonları 8.9 Dizgi işleme Kütüphanesinin Hafıza Fonksiyonları 8.10 Dizgi işleme KütüphanesininDiğer Fonksiyonları

  2. Amaçlar • Bu Bölümde Öğreneceklerimiz: • Karakter işleme Kütüphanesinin Fonksiyonlarını kullanabilmek (ctype). • Standartgiriş/çıkış Kütüphanesinin (stdio)Dizgi ve karakter input/output Fonksiyonlarını kullanabilmek • Standart Kütüphanesinin (stdlib) Dizgi DeğiştirmeFonksiyonlarınıkullanabilmek • Dizgi işleme Kütüphanesinin (Dizgi/String) Dizgi işlem Fonksiyonlarını kullanabilmek • Fonksiyon kütüphanelerinin gücünü yazılımların tekrar kullanılabilmesi olarak anlayabilme.

  3. 8.1 Giriş • BazıStandart Kütüphane Fonksiyonları tanıma • KolayDizgi ve karakter işlemleri • Programlar Karakterleri, Dizgileri, metinleri, ve Hafıza bloklarını işleyebilirler • Bu teknikler • Kelime işlemcileri • Sayfa planı yazılımları • Dizgicilik programları için kullanılırlar

  4. 8.2 Dizgiler ve KarakterlerKuralları • Karakterler • Program bloklarını inşa etme • Her program anlamlı Karakter gruplarının birbiri ardına gelmesidir • karakter sabiti • Birintdeğeritek tırnak içerisinde karakter olarak referans edilir • 'z' , z’ nin (int) tamsayı değerini temsil eder • Dizgiler • Karakterlerin serileri tek birim olarak ele alınır • Harfleri, sayıları ve özel Karakterleri(*, /, $) içerebilir • Dizgi gerçeği /literatürü (Dizgi sabiti) – çift tırnak içerisinde yazılır • “Merhaba" • Dizgiler Karakterlerin dizileridir • Dizgi , ilk karakteri gösteren bir göstergeçtir • Dizginin değeri ilk karakterin adresidir

  5. 8.2 Kurallar of Dizgiler ve Karakterler • Dizgi Tanımlamaları • Define as bir karakter dizisiveya birchar *tipinin değişkeni olarak tanımlama char color[] = “mavi"; char *colorPtr = “mavi”; • Dizgilerin, sonu '\0' ile iten karakter dizileri olarak temsil edildiğinihatırlayın • color5 elemana sahiptir • Dizgilere Giriş yapma • Scanf kullanımı scanf("%s", word); • Kopyaları word[]içerisine yerleştirir • &ihtiyaç yoktur (çünkübir Dizgi birgöstergeçtir) • '\0‘için dizideki yerini terk etmesini hatırlayın

  6. 8.3 karakter işleme Kütüphane • Karakter işleme Kütüphanesi • Faydalı testleri ve karakter verilerinin kullanımlarını uygulamak için Fonksiyonlar içerir • Her Fonksiyon, bir karakter (birint) veyaEOFargüman olarak içerir • Bir sonraki slaytbütün fonksiyonların bir tablosunu içeriyor <ctype.h>

  7. 8.3 karakter işleme Kütüphane

  8. fig08_02.c (Part 1 of 2)

  9. fig08_02.c (Part 2 of 2)

  10. isdigit’e göre: 8 , sayisidir # ,sayisi değildir isalpha ’e göre: A , harfidir b ,harfidir & ,harfi değildir 4 ,harfi değildir isalnum ’e göre: A ,sayi veya harfdir 8 ,sayi veya harfdir # ,sayi veya harfi değildir isxdigit ’e göre: F , hexadecimal sayidir J , hexadecimal sayi değildir 7 , hexadecimal sayidir $ , hexadecimal sayi değildir f , hexadecimal sayidir Program Output

  11. fig08_03.c (Part 1 of 2)

  12. fig08_03.c (Part 2 of 2) Program Output Islower ‘e göre: p küçük harftir P küçük harf değildir 5 küçük harf değildir ! küçük harf değildir isupper ‘e göre: D büyük harftir d büyük harf değildir 8 büyük harf değildir $ büyük harf değildir U, büyük harf U’ya dönüştürüldü 7,büyük harf7’ye dönüştürüldü $,büyük harf$’a dönüştürüldü L,küçük harf l’ye dönüştürüldü

  13. fig08_04.c (Part 1 of 2)

  14. fig08_04.c (Part 2 of 2)

  15. Isspace’e göre: Yeni satirbir beyaz-bosluk karakteridir yatay tab is a beyaz-bosluk karakter % is not a beyaz-bosluk karakter Iscntrl’e göre: yeni satir kontrol karakterdir $ kontrol karakteri değildir Ispunct’e göre: ; noktalı virgül karakteridir Y noktalı virgül karakter değildir # noktalı virgül karakter değildir Isprint’e göre: $ baski karakterdir Alert baski karakteri değildir Isgraph’e göre: Q boşluk karakterinden farklı baski karakteri Space boşluk karakterinden farklı baski karakteri değildir Program Output

  16. 8.4 Dizgi DeğiştirmeFonksiyonlar • DeğiştirmeFonksiyonlar • In<stdlib.h> (Standart Kütüphanesi) • Sayıların Dizgilerinitamsayi ve virgüllü sayı değerlerine çevirme

  17. fig 08_06.c Program Output Dizgi "99.0“, 99.000 olarak tutulur Tutulan değerin 2’ye bölümü 49.500

  18. fig08_07.c Program Output 2593 dizgisi (int) tamsayisina 2593’e dönüstürüldü dönüstürülen deger eksi 593 esittir 2000

  19. fig08_08.c Program Output “1000000" dizgisi long’a1000000olarak dönüstürüldü dönüstürülen degerin 2’ye bölümü 500000

  20. fig08_09.c Program Output "51.2% kabul edilir" Dizgisidouble deger 51.20 ve "% kabul edilir“Dizgisine dönüstürülmüstür

  21. fig08_10.c Program Output Orjinal dizgi "-1234567abc" dir Dönüstürülen değer -1234567 dir Orjinal dizginin kalanı "abc“dir Dönüstürülen değer artı 567 -1234000dir

  22. fig08_11.c Program Output Orjinal dizgi "-1234567abc" dir Dönüstürülen değer -1234567 dir Orjinal dizginin kalanı "abc“dir Dönüstürülen değer artı 567 -1234000dir

  23. 8.5 Standard Input/Output Kütüphane Fonksiyonları • <stdio.h> Fonksiyonları • karakter ve veri dizgisi kullanma

  24. fig08_13.c (Part 1 of 2)

  25. fig08_13.c (Part 1 of 2) Program Output Bir metin girin: Karakterler ve Dizgiler Metnin tersten yazılımı: religziDevrelretkaraK Bir metin girin: able was I ere I saw elba Metnin tersten yazılımı able was I ere I saw elba

  26. fig8_14.c

  27. Bir metin girin: Bu bir denemedir. Girilen metin: Bu bir denemedir. Program Output

  28. fig08_15.c Program Output bir (int) ve (double) sayi girin: 298 87.375 s dizisinde tutulan biçimlendirilmiş cıktı:: İnt: 298 double: 87.38

  29. fig08_16.c Program Output s karakter dizisinde tutulan değerler: int: 31298 double: 87.375

  30. 8.6 Dizgi işleme Kütüphanesinin Dizgi Elde etme Fonksiyonları • Dizgi işleme Kütüphane şu Fonksiyonlara sahiptir • Veri Dizgisi elde etme • Arama Dizgileri • Dizgiyi mantıklı parçalara bölmek • Dizgi boyu tanımlama

  31. fig08_18.c Program Output x dizisindeki Dizgi: Mutlu yıllar ydizisindeki Dizgi : Mutlu yıllar zdizisindeki Dizgi : Mutlu yıllar

  32. fig08_19.c

  33. s1 = Mutlu s2 = yeni yıllar strcat( s1, s2 ) = Mutlu yeni yıllar strncat( s3, s1, 6 ) = Mutlu strcat( s3, s1 ) = MutluMutluyeni yıllar Program Output

  34. 8.7 Dizgi işleme KütüphanesininKarşılaştırma Fonksiyonlar • Karşılaştırma Dizgileri • Bilgisayar Dizgi içindeki Karakterlerin sayısal ASCII kodlarını karşılaştırır • Bölüm D karakter kodlarının bir listesine sahiptir int strcmp( const char *s1, const char *s2 ); • s1 Dizgisinis2 ile karşılaştırır • Eğers1 < s2ise bir negatif sayıyı, s1 == s2ise sıfır veyas1 > s2ise bir pozitif sayıyı geriye döndürür int strncmp( const char *s1, const char *s2,size_t n ); • s1iles2 Dizgininn Karakterlerine kadar karşılaştırır • Geriye yukarıdaki gibi değer döndürür.

  35. fig08_21.c

  36. s1 = Mutlu yeni yıllar s2 = Mutlu yeni yıllar s3 = Mutlu tatiller strcmp(s1, s2) = 0 strcmp(s1, s3) = 1 strcmp(s3, s1) = -1 strncmp(s1, s3, 6) = 0 strncmp(s1, s3, 7) = 1 strncmp(s3, s1, 7) = -1 Program Output

  37. 8.8 Dizgi işleme Kütüphanesinin Arama Fonksiyonları

  38. fig08_23.c (Part 1 of 2)

  39. fig08_23.c (Part 2 of 2) Program Output “bu bir metindir“ icesinde ‘i’ karakteri bulundu. “bu bir metindir“ icesinde ‘z’ karakteri bulunamadı.

  40. fig08_24.c Program Output string1 = deger 3.14159 dir string2 = 1234567890 string1’in baslangıc uzunlugu string2 den hiçbir karakter icermemektedir = 13

  41. fig08_25.c Program Output “sakımak“icindeki karakterlerdenm “bu bir metindir” ’de görülen ilk karakterdir

  42. fig08_26.c Program Output The remainder of string1 beginning with the last occurrence of karakter 'z' is: "zebras"

  43. fig08_27.c Program Output string1 = The value is 3.14159 string2 = aehi lsTuv string1’in baslangıc uzunlugu string2 den sadece = 13 karakter icermektedir

  44. fig08_28.c Program Output string1 = abcdefabcdef string2 = def string1’in kalanı string2’nin ilk olusumu ile baslıyor: defabcdef

  45. fig08_29.c

  46. Dizginin belirtgeci: Bu 7 belirtke ile birlesmis bir cumledir belirtkeler: Bu 7 belirtke ile birleşmiş bir cumledir Program Output

  47. 8.9 Dizgi- işleme Kütüphanesinin Hafıza Fonksiyonları • Hafıza Fonksiyonları • <stdlib.h> içinde • İşleme, karşılaştırma, ve Hafıza’nın Arama blokları • Herhangi veri bloklarını işleyebilir • Gösterici parametrelerivoid *dir • Any pointer can be assigned to ve vice versa • Herhangi bir gösterici void *ve tam tersiolarak atanabilir • void * cannot be dereferenced • Her Fonksiyon işlemciye bit (Karakterler) sayıları belirtilmiş bir argümanı alır

  48. 8.9 Dizgi işleme Kütüphanesinin Hafıza Fonksiyonları

  49. fig08_31.c Program Output After s2 is copied into s1 with memcpy, s1 contains "Copy this Dizgi"

  50. fig08_32.c Program Output Memmove ‘dan önce x dizisindeki Dizgi: Home Sweet Home Memmove ‘dan sonra x dizisindeki Dizgi: Sweet Home Home

More Related