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

Benzer belgeler
ELN1002 BİLGİSAYAR PROGRAMLAMA 2

STRİNG DİZİLER(KATARLAR)

Hazır Fonksiyonlar {\} /\ Suhap SAHIN Onur GÖK 1

STRING (SÖZEL) İŞLEMLER. Yrd. Doç.Dr. Bülent Çobanoğlu

ALGORİTMA VE PROGRAMLAMA I

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

C Konsol Giriş Çıkış Fonksiyonları

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I

Diziler & Karakter Katarı (String)

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

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.

BÖLÜM 4: DEĞİŞKENLER, SABİTLER VE OPERATÖRLER

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

Giriş. ENF102 Jeoloji

Eln 1001 Bilgisayar Programlama I

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

C Programlama. Öğr. Grv. Mustafa AKSOĞAN. Akçadağ MYO

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ DERS 2

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

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

2 ISINMA TURLARI - DERLEYİCİ VE DERLEME KAVRAMLARIYLA BİRLİKTE GCC DERLEYİCİSİNE BİR BAKIŞ

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

/* Çember alanını hesaplar */

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Hafta 12 Karakter Tutan Diziler

C Programlama Dilininin Basit Yapıları

Fonksiyonlar (Altprogram)

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

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

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

MATLAB/Değişkene Değer Atamak

Programlama Dilleri 1. Ders 4: Diziler

C PROGRAMLAMA D İ L İ

BİL1001 Bilgisayar Bilimlerine Giriş 1

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

scanf () Fonksiyonu Klavyeden veri okumak için kullanılır. Yapı olarak printf () fonksiyonu aynıdır. Kullanım biçimi:

Temel Giriş/Çıkış Fonksiyonları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

C PROGRAMLAMA D İ L İ

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Internet Programming II

Internet Programming II

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

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

ALGORİTMA VE PROGRAMLAMA II

Dr. Fatih AY Tel: fatihay@fatihay.net

Biçem Belirteçleri (Format Specifiers)

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

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

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

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

Görsel Programlama 1

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

TEMEL STRING İŞLEMLERİ

Diziler (Arrays) Çok Boyutlu Diziler

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

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

Kocaeli Üniversitesi Bilgisayar Mühendisliği Programlama 2 Dersi Final Sınavı. A Grubu

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Telefon Rehberi Uygulaması

Özyineleme (Recursion)

Genel Programlama II

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

PASCAL PROGRAMLAMA DİLİ YAPISI

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

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

Adım Adım C. Dr. Hidayet Takcı


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

ALGORİTMA VE PROGRAMLAMA I

C PROGRAMLAMA D İ L İ

Temel Dosya İşlemleri. Kütük Organizasyonu 1

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

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

C#(Sharp) Programlama Dili

ALGORİTMA VE PROGRAMLAMA II

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

Ders 5: Temel Kütüphane Fonksiyonlar

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

8. İŞARETCİLER (POINTERS)

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

ALGORİTMA VE PROGRAMLAMA II

Programlama Dillerinde Kullanılan Veri Tipleri

Eln 1002 Bilgisayar Programlama II

Transkript:

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING) 1. HAFTA KARAKTER Karakterler, programlarda kullanılan temel simgelerdir. Her karakterin ASCII kod tablosunda bir tamsayı değer karşılığı vardır ve C programlama dilinde tek tırnak içinde verilirler. Karakter ASCII kod karşılığı A 65 Z 90 a 97 z 122 1

KARAKTER DİZİSİ - KATAR Karakterler, arka arkaya gelerek karakter dizileri ni (katarları) (string) oluştururlar. C de karakter dizileri çift tırnak içinde verilir ve kesinlikle \0 ile biter. \0 (NULL), karakter dizisinin elemanı olmayıp sonunu gösteren 1 Byte lık kontrol karakteridir. KARAKTER DİZİSİ BİLDİRİMİ C programlama dilinde karakter dizilerinin bildirimi iki şekilde yapılabilmektedir: Bir boyutlu dizi tipinde bildirim İşaretçi tipinde bildirim 2

BİR BOYUTLU DİZİ ŞEKLİNDE BİLDİRİM C programlama dilinde karakter dizileri char dizi adı [ eleman sayısı ]; şeklinde bir boyutlu dizi olarak bildirilebilirler. Derleyici bu bildirim sonucu: 1. Bellekte eleman sayısı tane Byte ayırır 2. Karakter dizisinin ilk karakterinin adresini dizi adı na aktarır. BİR BOYUTLU DİZİ ŞEKLİNDE BİLDİRİM Örneğin char alfa[3]; şeklindeki bildirim sonucu bellekteki durum &alfa alfa[0] alfa[1] alfa[2] 1 2 3 gibidir. 3

BİR BOYUTLU DİZİ ŞEKLİNDE BİLDİRİM Bir boyutlu dizi şeklinde yapılan bildirimler sonucu karakter dizilerine doğrudan atamalar yapılamaz. Atama, birleştirme (toplama) gibi işlemler; fonksiyonlar kullanılarak gerçekleştirilir. BİR BOYUTLU DİZİ ŞEKLİNDE BİLDİRİM 4

İŞARETÇİ ŞEKLİNDE BİLDİRİM C programlama dilinde karakter dizileri char * değişken adı ; şeklinde işaretçi olarak bildirilebilirler. Bu bildirim sonucunda: 1. Bellekte yer ayrılmaz. 2. Aktarılan karakter sayısına göre bellekte kapladığı alan değişir. 3. Karakter dizisinin başlangıç adresinin saklanacağı işaretçi değişken bildirilir. 4. malloc gibi fonksiyonlar kullanılarak karakter dizisinin bellek alanı dinamik olarak değiştirilebilir. İŞARETÇİ ŞEKLİNDE BİLDİRİM İşaretçi şeklinde yapılan bildirimler sonucu karakter dizilerine doğrudan atamalar yapılabilir. Bu tür tanımlanmış karakter dizileri kullanılırken 1. Sadece işaretçinin adı varsa tüm karakter dizisi 2. İşaretçi adından önce * karakteri de varsa karakter dizisinin ilgili karakteriyle ilgileniliyor anlamındadır. 5

İŞARETÇİ ŞEKLİNDE BİLDİRİM BAŞLANGIÇ DEĞERİ VERME Karakter dizilerine, bildirim şekillerine göre iki şekilde başlangıç değeri atanabilir: 1. Dizi şeklinde bildirimde başlangıç değeri: char isim [] = { tek tırnak içinde ve virgülle ayrılmış karakterler, \0 } ; char isim [] = değer ; 2. İşaretçi şeklinde bildirimde başlangıç değeri char *isim = değer ; 6

BAŞLANGIÇ DEĞERİ VERME ALFASAYISAL BİLGİLERİN GİRİLMESİ Klavyeden alfasayısal bilgileri (karakterler, karakter dizileri) girmek (okumak) için C programlama dilinde farklı komutlar kullanılabilir. 7

ALFASAYISAL BİLGİLERİN GİRİLMESİ Komut Kütüphane Kullanım şekli Açıklama scanf stdio.h scanf( format,& değişken ) sscanf gets getch getche getchar stdio.h stdio.h conio.h conio.h stdio.h scanf(dizi, format,& değişken ) gets( değişken ) Karakterleri boşluk, yeni satır veya dosya sonu gibi belirteçlere kadar alır/okur. scanf ile eşdeğer olup girdileri bir diziden okur. Karakterleri yeni satır veya dosya sonu belirtecine kadar, sonuna NULL (\0) ekleyerek alır/okur. değişken =getch() Ekranda görülmeden tek bir karakter alır/okur. değişken =getche() değişken =getchar() Ekranda görünerek tek bir karakter alır/okur. Ekranda görünerek girilen karakter dizisinin ilk karakterini alır/okur. ALFASAYISAL BİLGİLERİN GİRİLMESİ 8

ALFASAYISAL BİLGİLERİN GİRİLMESİ ALFASAYISAL BİLGİLERİN GİRİLMESİ 9

ALFASAYISAL BİLGİLERİN GİRİLMESİ ALFASAYISAL BİLGİLERİN GİRİLMESİ 10

ALFASAYISAL BİLGİLERİN GİRİLMESİ ALFASAYISAL BİLGİLERİN YAZDIRILMASI Komut Kütüphane Kullanım şekli Açıklama printf sprintf puts stdio.h stdio.h stdio.h printf( format,& değişken ) sprintf(dizi, format,& değişken ) puts( değişken ) Değişken içeriklerini veya ifadeleri formatlı bir şekilde yazdırır. printf ile eşdeğer olup sonucu bir diziye yazdırır. NULL ile sonlandırılmış karakter dizisini yazdırıp yeni satıra geçer. putchar stdio.h putchar( değişken ) Tek karakter yazdırır. putch conio.h putch( değişken ) Tek karakter yazdırır. 11

ALFASAYISAL BİLGİLERİN YAZDIRILMASI ALFASAYISAL BİLGİLERİN YAZDIRILMASI 12

ALFASAYISAL BİLGİLERİN YAZDIRILMASI ALFASAYISAL BİLGİLERİN YAZDIRILMASI 13

KARAKTER DİZİSİNİN UZUNLUĞU C programlama dilinde karakter dizilerinin uzunlukları (içerdikleri karakter sayısı) strlen ( alfasayısal bilgi); komutuyla bulunabilir. Bu hesaplamada karakter dizisi sonundaki NULL belirteci yer almaz. KARAKTER DİZİSİNİN UZUNLUĞU 14

KARAKTER TÜRLERİNİN TESPİTİ Komut isdigit isalpha isalnum isxdigit isspace iscntrl ispunct isprint isgraph islower isupper Açıklama ( 1 (Doğru) (True), değilse 0 (Yanlış) (False) Rakam (0-9) ise Harf (A-Z, a-z) ise Harf veya rakam ise 16 tabanında karakter (0-9, A-F, a-f) ise Boşluk ( ), yatay veya düşey tab ( \t, \v ), form besleme ( \f, 0x09, 0x0D, 0x20), satır başı ( \r ), yeni satır ( \n ) gibi karakter ise Delete veya diğer fonksiyon karakteri (0x7F veya 0x00 den 0x1F ye kadar) ise Boşluk, harf ve rakam dışında yazılabilen diğer karakter (noktalama işaretleri, simgeler gibi)ise Ekrana yazdırılabilen karakter ise (boşluk dahil) Ekrana yazdırılabilen karakter ise (boşluk hariç) Küçük harf ise Büyük harf ise KARAKTER TÜRLERİNİN TESPİTİ 15

KARAKTERLERİN KOPYALANMASI Komut strcpy strncpy Açıklama strcpy ( s1, s2 ); s2 yi s1 e kopyalar (atama yapar) strncpy ( s1, s2, n ); s2 nin ilk n tane karakterini s1 e kopyalar (atama yapar) KARAKTERLERİN KOPYALANMASI 16

KARAKTERLERİN EKLENMESİ Komut strcat strncat Açıklama strcat ( s1, s2 ); s2 yi s1 in arkasına ekler strncat ( s1, s2, n ); s2 nin ilk n tane karakterini s1 in arkasına ekler KARAKTERLERİN EKLENMESİ 17

KARAKTERLERİN KARŞILAŞTIRILMASI Komut strcmp strncmp stricmp strnicmp Açıklama strcmp ( s1, s2 ); s1 ile s2 yi karşılaştırır. s1=s2 0 s1>s2 >0 s1<s2 <0 strncmp ( s1, s2, n ); s1 ile s2 nin n tane karakterini karşılaştırır. strcmp ile aynı, büyük-küçük harf eşit strncmp ile aynı, büyük-küçük harf eşit KARAKTERLERİN KARŞILAŞTIRILMASI 18

KARAKTERLERDE ARAMA Komut Açıklama strchr strrchr strstr strpbrk strspn strchr ( c, h ); Baştan sona doğru başlayarak c alfasayısal bilgisi içinde h harfinin bulunduğu ilk karakterin adresini (kendisi dahil sonraki karakterleri) verir. strrchr ( c, h ); Sondan başa doğru başlayarak c alfasayısal bilgisi içinde h harfini arar. strstr ( s1, s2 ); s1 içinde s2 yi arar. strpbrk ( s1, s2 ); s1 içinde s2 karakter grubundaki karakterlerden s1 in başlangıcına en yakın olanı arar. strspn ( s1, s2 ); s1 içinde s2 karakter grubunun bulunduğu ilk parçanın uzunluğunu tespit eder. strcspn strcspn ( s1, s2 ); s1 içinde s2 karakter grubunun bulunduğu ilk parçanın dışındaki uzunluğunu tespit eder. KARAKTERLERDE ARAMA 19

KARAKTERLERDE ARAMA KARAKTERLERDE DÖNÜŞTÜRME - 1 Komut strlwr strupr strrev Açıklama Alfasayısal bilgideki tüm karakterleri küçük harfe çevirir. Alfasayısal bilgideki tüm karakterleri büyük harfe çevirir. Alfasayısal bilgiyi ters (sondan başa) çevirir. 20

KARAKTERLERDE DÖNÜŞTÜRME KARAKTERLERDE DÖNÜŞTÜRME - 2 Komut strtod strtol strtoul sonuç = strtod ( str, dur ); Açıklama İçinde rakamlar, nokta, +, -, e ve E harfleri içeren alfasayısal bilgiyi double değere dönüştürür. dur değişkeni de okumayı durduran ilk karakteri gösterir ( *dur=&durduran karakter ) sonuç = strtol ( str, dur, taban ); Alfasayısal bilgiyi belirtilen tabanda long değere dönüştürür. sonuç = strtoul ( str, dur, taban ); Alfasayısal bilgiyi belirtilen tabanda (2, 4, 5, 8, 10, 12, 16, 20, 36) unsigned long değere dönüştürür. 21

KARAKTERLERDE DÖNÜŞTÜRME KARAKTERLERDE DÖNÜŞTÜRME Komut Açıklama tolower toupper strlwr strupr strrev strtod strtol strtoul atof atoi atol itoa ltoa ultoa fcvt ecvt gcvt Karakteri küçük harfe çevirir. Karakteri büyük harfe çevirir. Alfasayısal bilgideki tüm karakterleri küçük harfe çevirir. Alfasayısal bilgideki tüm karakterleri büyük harfe çevirir. Alfasayısal bilgiyi ters (sondan başa) çevirir. Alfasayısal bilgiyi double değere dönüştürür. Alfasayısal bilgiyi long değere dönüştürür. Alfasayısal bilgiyi unsigned long değere dönüştürür. Alfasayısal bilgiyi double değere dönüştürür. Alfasayısal bilgiyi int değere dönüştürür. Alfasayısal bilgiyi long değere dönüştürür. Sayısal bilgiyi, verilen tabana göre alfasayısal bilgiye dönüştürür. Sayısal bilgiyi, verilen tabana göre alfasayısal bilgiye dönüştürür. Sayısal bilgiyi, verilen tabana göre alfasayısal bilgiye dönüştürür. double değeri alfasayısala çevirir. double değeri alfasayısala çevirir. double değeri alfasayısala çevirir. 22

KARAKTERLERDE DÖNÜŞTÜRME BELLEK DİZİLERİNDE İŞLEMLER Komut Açıklama memcpy memmove memccpy memset memcmp memicmp memchr memcpy ( s1, s2, n ); s2 deki n karakteri (Byte) s1 e kopyalar. memmove ( s1, s2, n ); s2 deki n karakteri (Byte) s1 e kopyalar/taşır. memccpy ( s1, s2, c, n ); s2 deki n karakteri (Byte) s1 e kopyalar. Kopyalama işlemi belirtilen c karakteri kopyalanana kadar veya ilk n karaktere kadar yapılır. memset ( s1, c, n ); s1 in ilk n karakterine belirtilen c karakterinden aktarır. memcmp ( s1, s2, n ); s1 ile s2 nin ilk n karakterini karşılaştırır (büyük-küçük harf duyarlı). Büyük-küçük harf duyarlılığı olmadan karşılaştırma yapar. memchr ( s1, c, n ); s1 in ilk n karakterinde belirtilen c karakterini arar. 23

KARAKTER DİZİLERİ UYGULAMALARI Klavyeden küçük harflerle girilen bir cümlenin harflerini BÜYÜK- KÜÇÜK şeklinde tekrar yazdıran program. KARAKTER DİZİLERİ UYGULAMALARI Klavyeden küçük harflerle girilen bir cümlede, yine klavyeden girilen bir harften kaç tane olduğunu sayıp bunların yerlerini gösteren program. 24

KARAKTER DİZİLERİ UYGULAMALARI Klavyeden büyük harflerle girilen bir cümlede kaç tane sesli harf olduğunu sayan program. KARAKTER DİZİLERİ UYGULAMALARI Klavyeden girilen bir mesajı MORSE Alfabesiyle kodlayarak tekrar ekrana yazdıran program. Morse alfabesi 1832 yılında Samuel Morse tarafından telgraf sisteminde kullanılmak için geliştirilmiştir. HARFLER A.- N -. B -... O --- C -.-. P.--. D -.. Q --.- E. R.-. F..-. S... G --. T - H... U..- I.. V...- J.--- W.-- K -.- X -..- L.-.. Y -.-- M -- Z --.. RAKAMLAR 0 ----- 5... 1.---- 6 -... 2..--- 7 --... 3...-- 8 ---.. 4...- 9 ----. 25

KARAKTER DİZİLERİ UYGULAMALARI 26