Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 2

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

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

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

STRİNG DİZİLER(KATARLAR)

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

ALGORİTMA VE PROGRAMLAMA I

Hafta 12 Karakter Tutan Diziler

ALGORİTMA VE PROGRAMLAMA I

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Fonksiyonlar (Altprogram)

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

C Konsol Giriş Çıkış Fonksiyonları

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

ALGORİTMA VE PROGRAMLAMA I

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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

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

C ile Uygulamalar 2 - Cevaplar

Temel Giriş/Çıkış Fonksiyonları

/* Çember alanını hesaplar */

PROGRAMLAMAYA GİRİŞ DERS 2

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 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

Programlama Dilleri Laboratuvarı

Eln 1001 Bilgisayar Programlama I

Diziler (Arrays) Çok Boyutlu Diziler

Strings(Karakter Dizisi)

Giriş. ENF102 Jeoloji

Giris {\} /\ Suhap SAHIN Onur GÖK

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

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

C Programlama Dilininin Basit Yapıları

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

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

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

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

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Görsel Programlama 1

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

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

C Programlama printf() Fonksiyonu

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

C PROGRAMLAMA D İ L İ

Programlama Dilleri 1. Ders 4: Diziler

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

Sınav tarihi : Süre : 60 dak.

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

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

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

C++ Dersi: Nesne Tabanlı Programlama

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

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

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

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

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

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

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

Internet Programming II

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

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

Döngü komutları komutların bir çok kez yeniden yürülmesini. sağlayan, programlamada kullandığımız önemli yapılardan biridir.

Telefon Rehberi Uygulaması

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

BÖLÜM 11: YAPISAL VERİ TİPLERİ

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

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

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

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

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

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

MATLAB/Değişkene Değer Atamak

ALGORİTMA VE PROGRAMLAMA II

C ile Uygulamalar 4 - Cevaplar

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Diziler & Karakter Katarı (String)

Eln 1002 Bilgisayar Programlama II

String Sınıfını Yönetmek

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Internet Programming II

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

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İ

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

C# Çalışma Örnekleri

ALGORİTMA VE PROGRAMLAMA II

Hafta 13 Fonksiyonlar

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Dr. Fatih AY Tel: fatihay@fatihay.net

Program Akış Kontrol Yapıları

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Java da Dizi Tanımlama

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

C dilinde if-else yapısı

Transkript:

Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri

Dizgi Tanımı Đki çift tırnak işareti ve içinde tanımlanmış olan sıralı karakterler bütününe dizgi (string) adı verilmektedir. Dizgi Merhaba Bu bir dizgi B Boş dizgi Açıklama 7 karakter içeren bir dizgi 12 karakter içeren dizgi. Bir karakter içeren bir dizgi Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 2

Dizgi Tanımı char dizi_adı[uzunluk] ; char kelime[11]; kelime[0] = A ; Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 3

Dizgi Tanımı kelime[1] = l ; kelime[2] = i ; kelime[3] = \0 ; Bir dizginin sonu boş karakter (NULL character) olan \0 karakteri ile biter. Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 4

Dizgi Tanımı Dizgileri tanımlarken ilk değerini de atayabiliriz. char dizi_adı[uzunluk] = dizgi_sabiti; char ad[30]= IRMAK ; ad[0]= E ; Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 5

Dizgi Tanımı Dizgi tanımlamalarını, dizgi uzunluğunu dizi tanımlaması sırasında verilmeden ve ilk değerini atayarak da yapabiliriz. char dizgi[] = dizgi_sabiti; char cumle[] = Bilim Kurgu ; Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 6

Dizgi Tanımı Dizgiler tanımlanırken göstergeler kullanılarak da aşağıdaki gibi tanımlanabilir. Çünkü her bir dizgi aslında bir dizi ile tanımlanmıştır. char *dizgi_adı = dizgi_sabiti; char *cumle = Bilim Kurgu ; Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 7

Dizgi Tanımı char cumle[] = "Merhaba Dunya"; int say = 0; int i; for (i = 0; cumle[i]!= '\0'; i++) say++; printf("%s %d karakter icerir.", cumle, say); Çıktı: Merhaba Dunya 13 karakter icerir. Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 8

scanf ( %s, dizgi_adı); char kelime[11]; scanf ( %s, kelime); Dizgi Girdi İşlemleri scanf() fonksiyonu girilen değerler içinde boşluk veya enter işareti ( ) görünceye kadar okuma işine devam eder Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 9

Dizgi Girdi İşlemleri char kelime[11]; scanf ( %7s, kelime); Girdi kelime Programlama P r o g r a m \0 Prog. P r o g. \0 Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 10

char cumle[15]; gets (cumle); gets (dizgi_adı); Dizgi Girdi İşlemleri gets() fonksiyonu enter ya da girdi sonunu belirleyen (ctrl+z) karakterini görünceye kadar girdiyi okumaya devam eder ve okuduğu değerin sonuna boş karakterini \0 otomatik olarak ekleyerek dizgi_adı na bu değerleri atar. Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 11

Dizgi Girdi İşlemleri sscanf() fonksiyonu kullanıldığında girdi bilgisi klavyeden değil bir başka dizgiden alınır. sscanf (dizgi_adı, format_dizgisi, girdi_listesi); char cumle[]="hakan bugun 40 yasina girdi"; char dizgi1[20], dizgi2[20]; int i; sscanf cumle,"%s %s %d",dizgi1,dizgi2,&i); printf ("%s --> %d\n",dizgi1, i); Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 12

printf ( %s, dizgi_adı); char dizgi1[15]= merhaba ; char dizgi2[]= iyi ; Dizgi Çıktı İşlemleri printf() fonksiyonunu dizgilerin bastırılması amacıyla da kullanabiliriz. Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 13

char dizgi1[15]= merhaba ; char dizgi2[]= iyi ; Dizgi Çıktı İşlemleri puts() fonksiyonu standart çıktı birimine yani ekrana dizginin değerinin bastırılmasını sağlar ve daha sonra yeni satır karakterini otomatik olarak çıktının sonuna ekler. puts (dizgi_adı); char dizgi1[]="merhaba"; char dizgi2[]="nasilsin?"; puts(dizgi1); puts(dizgi2); Çıktı: merhaba nasilsin? Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 14

sprintf (dizgi_adı, format_dizgisi, liste); float benzin = 47.0; float km = 300; char benzin_km[80]; sprintf(benzin_km,"km. de %5.3f lt. benzin yakiyor", km/benzin); printf ("%s ", benzin_km); Dizgi Çıktı İşlemleri sprintf() fonksiyonu farklı değişkenlerin değerini belirli bir format dizgisine uygun olarak yeni bir dizginin içine kopyalar. Çıktı: km. de 6.383 lt. benzin yakiyor Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 15

Dizgi Fonksiyonları Dizgi işleme amacıyla hazırlanmış programlarda kolaylık sağlayabilecek bir çok fonksiyon <string.h> kütüphanesi içinde tanımlanmıştır. Bir dizginin içindeki karakter sayısını bulmak için strlen() fonksiyonu kullanılır. strlen (dizgi_adı); int uzunluk; char dizgi[10] = Ali uzunluk = strlen(dizgi); 3 Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 16

strcpy() fonksiyonu dizgi kopyalama fonksiyonudur. strcpy (dizgi2_adı, dizgi1_adı); char dizgi1[13]="iyi gunler"; char dizgi2[13]; Dizgi Fonksiyonları strcpy (dizgi2, dizgi1); Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 17

strncpy (dizgi2_adı, dizgi1_adı, n); char isim[30]= Onur Ahmet Uslu ; char soyad[10], ilkad[10], ortaad[10]; Dizgi Fonksiyonları strncpy() fonksiyonu dizgi1_adı nın içindeki ilk n karakterin dizgi2_adı na kopyalanmasını sağlar. strncpy(ilkad, isim,4); ilkad[4]= \0 ; strncpy(ortaad, &isim[5], 5); ortaad[4]= \0 ; strcpy(soyad, &isim[11]); Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 18

strcat (dizgi1_adı, dizgi2_adı); Dizgi Fonksiyonları strcat() fonksiyonu bir dizginin sonuna diğer bir dizginin yapıştırılmasını sağlar. char dizgi1[12]="iyi gunler "; char dizgi2[12]= Nasilsiniz? ; strcat (dizgi1, dizgi2); printf ("\ndizgi 1: %s %d",dizgi1, strlen(dizgi1)); printf ("\ndizgi 2: %s ",dizgi2); Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 19

Dizgi Fonksiyonları strncat() fonksiyonu dizgi2_adı nın ilk n karakterinin dizgi1_adı nın sonuna yapıştırılmasını sağlar. strncat (dizgi1_adı, dizgi2_adı, n); char dizgi1[15]="iyi gunler "; char dizgi2[15]= Nasilsiniz? ; strncat (dizgi1, dizgi2, 5); printf ("\ndizgi 1: %s ",dizgi1); printf ("\ndizgi 2: %s ",dizgi2); Çıktı: dizgi 1: iyi gunler Nasil dizgi 2: Nasilsiniz? Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 20

strcmp (dizgi1_adı, dizgi2_adı); Dizgi Fonksiyonları strcmp() fonksiyonu iki dizginin karşılaştırılmasını sağlar. Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 21

strncmp() fonksiyonu iki dizginin ilk n karakterlerinin karşılaştırılmasını sağlar. strncmp (dizgi1_adı, dizgi2_adı, n); Dizgi Fonksiyonları char dizgi1[13]="iyi gunler "; char dizgi2[13]= "iyi misiniz?"; printf ("\n%d ",strncmp (dizgi1, dizgi2, 3)); Çıktı: 0 Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 22

strstr(dizgi1_adı, dizgi2_adı); Dizgi Fonksiyonları strstr() fonksiyonu bir dizginin içinde diğer bir dizgiyi arar. char dizgi1[13]="iyi gunler "; char dizgi2[13]= "gun"; if (strstr (dizgi1, dizgi2) == '\0') printf ("dizgi2 dizgi1 in icinde YOK"); else printf ("dizgi2 dizgi1 in icinde VAR"); Çıktı: dizgi2 dizgi1 in icinde VAR Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 23

Dizgi Fonksiyonları Kullanıcının girdiği bir dizgiyi okuyarak, bu dizginin tersini bulan bir program yazınız. #include <string.h> int main(void) { char str2[30], str1[30]; int i, uzunluk; printf("bir dizgi giriniz:"); gets(str1); uzunluk=strlen(str1); for(i=0;i<=uzunluk;++i) strncpy(&str2[i],&str1[uzunluk-i-1],1); printf("%s", str2); return(0); } Çıktı: Bir dizgi giriniz:kitap patik Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 24

Karakter Fonksiyonları char k; Fonksiyon Döndürdüğü Değer isalpha(k) k bir harf ise, sıfırdan farklı, diğer durumlarda sıfır isdigit(k) k bir sayı ise, sıfırdan farklı, diğer durumlarda sıfır islower(k) k küçük bir harf ise, sıfırdan farklı, diğer durumlarda sıfır. isupper(k) k büyük bir harf ise, sıfırdan farklı, diğer durumlarda sıfır isspace(k) k boşluk, yeni satır veya tab karakteri gibi bir karakterse, sıfırdan farklı, diğer durumlarda sıfır tolower(k) k nın değerinin küçük harf karşılığı toupper(k) k nın değerinin büyük harf karşılığı Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 25

Karakter Fonksiyonları Kullanıcıdan isimler ve notların karışık olarak girildiği bir dizgi alan ve bu dizginin içindeki isimleri ekranda gösteren bir program yazınız. #include <stdio.h> #include <ctype.h> #include <string.h> int main(void) { char str1[70]; int k, i; printf("bir dizgi giriniz:"); gets(str1); k=strlen(str1); for(i=0;i<=k;++i) if(isalpha(str1[i])) printf("%c", str1[i]); return(0); } Çıktı: Bir dizgi giriniz:o12s34m6a7n 100 Osman Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 26

char diz1[4][4]; Gösterge Dizgileri Diziler ve göstergeleri kullanarak da dizgileri tanımlayabiliriz. char *diz2[4]; Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 27

Gösterge Dizgileri char mevsimler[4]={ Sonbahar, Kis, Ilkbahar, Yaz }; Bölüm 9 Dizgiler Çağıltay, Selbes, Tokdemir, Turhan 28