BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

Benzer belgeler
Hafta 12 Karakter Tutan Diziler

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Yrd. Doç. Dr. Caner ÖZCAN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

Hafta 11 Çok Boyutlu Diziler

Hafta 13 Fonksiyonlar

Hafta 5 Algoritma Örnekleri ve Analizi

Yrd. Doç. Dr. Caner ÖZCAN

C Konsol Giriş Çıkış Fonksiyonları

Hafta 4 Döngü Yapıları

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş

Yrd. Doç. Dr. Caner ÖZCAN

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

ALGORİTMA VE PROGRAMLAMA I

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Yrd. Doç. Dr. Caner ÖZCAN

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

ALGORİTMA VE PROGRAMLAMA I

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

C Programlama Dilininin Basit Yapıları

Temel Giriş/Çıkış Fonksiyonları

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Eln 1001 Bilgisayar Programlama I

C PROGRAMLAMA D İ L İ

Strings(Karakter Dizisi)

BİL1001 Bilgisayar Bilimlerine Giriş 1

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ DERS 2

Programlama Dilleri 1. Ders 4: Diziler

Ders 4: Temel Giriş/Çıkış Fonksiyonları

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Diziler (Arrays) Çok Boyutlu Diziler

BÖLÜM 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

Özyineleme (Recursion)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

STRİNG DİZİLER(KATARLAR)

Bigisayar Programlama

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Giriş. ENF102 Jeoloji

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Eln 1002 Bilgisayar Programlama II

Week 5 Examples and Analysis of Algorithms

Pointer Kavramı. Veri Yapıları

Fonksiyonlar (Altprogram)

int printf (const char *format [, argument,...]);

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Algoritma ve Programlama: Karar Yapıları ve Döngüler

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

ALGORİTMA VE PROGRAMLAMA II

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Akış Diyagramı)

Hafta 1 Programlamaya Giriş

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

BLM 111 Algoritma ve Programlama I Güz 2018

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Bilgisayar Programlama. 1.Hafta

ALGORİTMA VE PROGRAMLAMA II

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Temel Giriş/Çıkış Fonksiyonları (Devam) Örnek :

Internet Programming II

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Bölüm 2 - C ile Programlamaya Giriş

ALGORİTMA VE PROGRAMLAMA (Bölüm 3)

BİLGİSAYAR PROGRAMLAMA DERSİ

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER

Yrd. Doç. Dr. Caner ÖZCAN

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

2. Dereceden Denklemin Köklerini Bulan Program

Dr. Fatih AY Tel: fatihay@fatihay.net

Temel Bilgisayar Programlama

Internet Programming II

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Transkript:

BLM-111 PROGRAMLAMA DİLLERİ I Ders-11 Karakter Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/

Karakter ve String Karakter Karakter bir sabit tek tırnak arasında karakter olarak gösterilen tamsayı bir değerdir. Karakterin değeri, karakterin bilgisayarın karakter kümesinde yer alan tamsayı değeridir. String Karakter kümesidir. Çift tırnak arasında belirtilir. C de null karakter ( \ 0 ) ile sonlanan karakter dizisidir. Değişken tipi char yani karakter olan diziler, 'katar' ya da İngilizce adıyla 'string' olarak isimlendirilirler 2

String Tanımlama Karakter dizisi veya char * tipinde değişken (pointer) olarak tanımlanırlar. Örnek : char str[8]; En çok 8 karakter alabilen bir dizi oluşturur. Eğer str dizisi string olarak kullanılacak ise en fazla 7 karakter alabilir ve sonu NULL karakter \0 ile bitmek zorunda. 3

String Tanımlama Eğer str de abcd yazısını depolarsak bu aşağıdaki şekilde görünecektir. NULL karakter ile tamamlanır str: a b c d \0 \0 \0 \0 0 1 2 3 4 5 6 7 String NULL ile bitmek zorunda. 4

Boş String Boş string tüm elemanları NULL karakter \0 olan bir karakter dizisini ifade eder. str: \0 \0 \0 \0 \0 \0 \0 \0 0 1 2 3 4 5 6 7 Tüm karakterler NULL karakteri olur. 5

String Maksimum Uzunluğu 8 karakter uzunluğunda bir string örneğin, abcdefgh str de depolanamaz. str: a b c d e f g h 0 1 2 3 4 5 6 7 NULL karakter için yer yok! Bu 8 karakter içeren bir karakter dizisidir. Fakat string DEĞİL. Bir string her zaman NULL karakter ile bitmek ZORUNDA! 6

String İlk Değer Atama Bir karakter dizisi tanımlama anında diğer dizilerde olduğu gibi aşağıdaki gibi tanımlanabilir. Hatırlayın belirtilmeyen elemanlar 0 ile dolduruluyordu, ki bu NULL karakter oluyor. Bu nedenle yukarıdaki beyan aşağıdaki string e karşılık geliyor. str: a b c \0 \0 \0 \0 \0 0 1 2 3 4 5 6 7 Gerektiği gibi NULL ile bitiyor. 7

String İlk Değer Atama Eğer bir karakter dizisi bir string depolayacaksa, aşağıdaki gibi basitçe ilk değer atanabilir. Sadece string çift tırnak içine konulur. Buna string literali denir. char str[8] = abc ; /* önceki ile aynı*/ str: a b c \0 \0 \0 \0 \0 0 1 2 3 4 5 6 7 Gerektiği gibi NULL ile bitiyor. 8

String İlk Değer Atama Eğer dizinin uzunluğunu tanımlama anında belirtmiyorsak derleyici string uzunluğu + NULL karakter kadar yer ayırır char str[] = abc ; str: a b c \0 0 1 2 3 9

String İlk Değer Atama String ler genellikle aşağıdaki gibi tanımlanır. char *str = abc ; str: a b c \0 0 1 2 3 Bu tanımlama ile önceki tanımlamalar arasındaki fark: bu yol ile tanımlanan string ler READ-ONLY oluyor ve değiştirilemiyorlar. char str[]= abc ; şeklinde tanımlanan string leri istediğiniz gibi değiştirebilirsiniz. 10

String Yazdırmak C string leri yazdırmak için iki fonksiyon sunuyor. (1) puts(str); (2) printf( %s, str); char str1[]= bu benim ilk stringim ; /* null karakteri görene kadar karakterlri ekrana yazdırır ve imleç sonraki satırın başına geçer.*/ puts(str1); /* stringi imlecin olduğu yerden yazdırmaya başlar */ printf( %s, str1); /* 40 boşluk ayırır ve stringi bunun içinde sağa dayalı olarak yazdırır. */ printf( %40s, str1); /* 40 boşluk ayırır ve stringi bunun içinde sola dayalı olarak yazdırır. */ printf( %-40s, str1); 11

String Yazdırmak char str1[]= bu benim ilk stringim ; /* stringden sadece ilk 10 karakteri yazar,sağa dayalı */ printf( %.10s, str1); /* 40 boşluk ayırır ve sadece ilk 10 karakteri yazdırır, sağa dayalı */ printf( %40.10s, str1); /* 40 boşluk ayırır ve sadece ilk 10 karakteri yazdırır, sola dayalı */ printf( %-40.10s, str1); 12

String Okumak Klavyeden string almak için C iki fonksiyon sunuyor. (1) gets(str); (2) scanf( %s, str); & kullanmaya gerek yoktur çünkü dizi adı ilk elemanın adresini gösterir. char str2[80]; /* \n karakterine rastlayana kadar karakterleri okur. */ gets(str2); /* bütün boşluk karakterlerini (space, tab, newline) geçerek * girileni sonraki boşluk karakterine kadar okur.*/ scanf( %s, str2); 13

String Okumak /*eğer giriş aşağıdaki gibi ise:_ space olarak farz edelim */ xyz123 _45 67 scanf ilk iki boşluğu geçecek ve str2 xyz123 olacak. Sonra boşluğu görecek ve okuma duracak Bir sonraki scanf( %s, ) bu boşlukları geçecek ve 45 i okuyacak. 14

String Okumak Örneğin, char kelime[6] dizisine okuma yaparken scanf fonksiyonunda dönüşüm tanımlayıcısı olarak %5s kullanılırsa ilk 5 karakter okunur ve 6. karakter olarak null karakteri yerleştirilir. Böylece girilen karakterler dizinin hafızadaki konumuna alınırken dizinin dışına taşması engellenmiş olur. 15

getchar() ve puts İsterseniz "Enter" girilene kadar girişi okuyacak kendi okuma fonksiyonunuzu yazabilirsiniz. 16

String uzunluğunu bulma 17

Kaynaklar Doç. Dr. Fahri Vatansever, Algoritma Geliştirme ve Programlamaya Giriş, Seçkin Yayıncılık, 12. Baskı, 2015. J. G. Brookshear, Computer Science: An Overview 10th Ed., Addison Wisley, 2009. Kaan Aslan, A dan Z ye C Klavuzu 8. Basım, Pusula Yayıncılık, 2002. Paul J. Deitel, C How to Program, Harvey Deitel. Bayram AKGÜL, C Programlama Ders notları 18