Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
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üphanesinin Diğer Fonksiyonları
2
Bu Bölümde Öğreneceklerimiz:
Amaçlar Bu Bölümde Öğreneceklerimiz: Karakter işleme Kütüphanesinin Fonksiyonlarını kullanabilmek (ctype). Standart giriş/çıkış Kütüphanesinin (stdio) Dizgi ve karakter input/output Fonksiyonlarını kullanabilmek Standart Kütüphanesinin (stdlib) Dizgi Değiştirme Fonksiyonları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
Bazı Standart Kütüphane Fonksiyonları tanıma
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 Karakterler Kuralları
Program bloklarını inşa etme Her program anlamlı Karakter gruplarının birbiri ardına gelmesidir karakter sabiti Bir int değeri tek 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 dizisi veya bir char * tipinin değişkeni olarak tanımlama char color[] = “mavi"; char *colorPtr = “mavi”; Dizgilerin, sonu '\0' ile iten karakter dizileri olarak temsil edildiğini hatırlayın color 5 elemana sahiptir Dizgilere Giriş yapma Scanf kullanımı scanf("%s", word); Kopyaları word[] içerisine yerleştirir & ihtiyaç yoktur (çünkü bir Dizgi bir gö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 (bir int) veya EOF argüman olarak içerir Bir sonraki slayt bü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
Program Output 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 harf 7’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
Program Output Isspace’e göre:
Yeni satir bir 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ştirme Fonksiyonlar
In<stdlib.h> (Standart Kütüphanesi) Sayıların Dizgilerini tamsayi 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ü
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 “ " dizgisi long’a olarak dönüstürüldü dönüstürülen degerin 2’ye bölümü
20
fig08_09.c Program Output "51.2% kabul edilir" Dizgisi double deger 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 dir Orjinal dizginin kalanı "abc“ dir Dönüstürülen değer artı dir
22
fig08_11.c Program Output Orjinal dizgi "-1234567abc" dir
Dönüstürülen değer dir Orjinal dizginin kalanı "abc“ dir Dönüstürülen değer artı dir
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ı: religziD ev relretkaraK Bir metin girin : able was I ere I saw elba Metnin tersten yazılımı
26
fig8_14.c
27
Bir metin girin: Bu bir denemedir. Girilen metin: Program Output
28
fig08_15.c Program Output bir (int) ve (double) sayi girin :
s dizisinde tutulan biçimlendirilmiş cıktı: : İnt : 298 double:
29
fig08_16.c Program Output s karakter dizisinde tutulan değerler :
int : 31298 double:
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
y dizisindeki Dizgi : Mutlu yıllar z dizisindeki Dizgi : Mutlu yıllar
32
fig08_19.c
33
Program Output s1 = Mutlu s2 = yeni yıllar
strcat( s1, s2 ) = Mutlu yeni yıllar strncat( s3, s1, 6 ) = Mutlu strcat( s3, s1 ) = Mutlu Mutlu yeni yıllar Program Output
34
8.7 Dizgi işleme Kütüphanesinin Karşı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 Dizgisini s2 ile karşılaştırır Eğer s1 < s2 ise bir negatif sayıyı, s1 == s2 ise sıfır veya s1 > s2 ise bir pozitif sayıyı geriye döndürür int strncmp( const char *s1, const char *s2, size_t n ); s1 ile s2 Dizginin n Karakterlerine kadar karşılaştırır Geriye yukarıdaki gibi değer döndürür.
35
fig08_21.c
36
Program Output 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
string1’in baslangıc uzunlugu string2 den hiçbir karakter icermemektedir = 13
41
fig08_25.c Program Output “sakımak“icindeki karakterlerden m
“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
Program Output 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ı
<stdlib.h> içinde İşleme, karşılaştırma, ve Hafıza’nın Arama blokları Herhangi veri bloklarını işleyebilir Gösterici parametreleri void * dir Any pointer can be assigned to ve vice versa Herhangi bir gösterici void * ve tam tersi olarak 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
51
fig08_33.c Program Output s1 = ABCDEFG s2 = ABCDXYZ
memcmp( s1, s2, 4 ) = 0 memcmp( s1, s2, 7 ) = -1 memcmp( s2, s1, 7 ) = 1
52
Fig8_34.c Program Output ‘g‘ karakterinden sonra s den kalan “gidir“
53
8.10 Dizgi işleme Kütüphanesinin Diğer Fonksiyonları
char *strerror( int errornum ); errornum temelli hata mesajına bağlı bir sistem oluşturur. Dizgiye bir gösterici döndürür size_t strlen( const char *s ); Dizgisi içerisindeki Karakterlerin (NULL dan önce) sayısını geriye döndürür
54
fig08_35.c Program Output string1 = BBBBBBBBBBBBBB
memset’ten sonra string1 = bbbbbbbBBBBBBB
55
fig08_37.c Program Output No such file or directory
56
fig08_38.c Program Output "abcdefghijklmnopqrstuvwxyz" ’in uzunlugu 26
"four“ ’in uzunlugu 4 "Boston" ’in uzunlugu 6
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.