Strings(Karakter Dizisi)

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

Hafta 12 Karakter Tutan Diziler

C ile Uygulamalar 2 - Cevaplar

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

Eln 1002 Bilgisayar Programlama II

Eln 1001 Bilgisayar Programlama I

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

STRİNG DİZİLER(KATARLAR)

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

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BİL1001 Bilgisayar Bilimlerine Giriş 1

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

C ile Uygulamalar 3 - Cevaplar

Temel Giriş/Çıkış Fonksiyonları

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

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

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

Yrd. Doç. Dr. Caner ÖZCAN

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Dr. Fatih AY Tel: fatihay@fatihay.net

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

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

C PROGRAMLAMA D İ L İ

C Konsol Giriş Çıkış Fonksiyonları

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

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

C Programlama Dilininin Basit Yapıları

Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste

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

8. İŞARETCİLER (POINTERS)

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

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

Görsel Programlama 1

ELN1001 BİLGİSAYAR PROGRAMLAMA I

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

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.

Giriş. ENF102 Jeoloji

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

Programlama Dilleri 1. Ders 4: Diziler

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

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

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

Java String İşlemleri

PROGRAMLAMAYA GİRİŞ DERS 2

BÖLÜM 12: DOSYA İŞLEMLERİ

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

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Başkent Üniversitesi MühendislikFakültesi BaharYarıyılı YerSıra No BİL 101 Bilgisayar Yazılımı-I Dersi Dönem Sonu MAZERET Sınavı

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

Telefon Rehberi Uygulaması

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

12. Saat : Dosyalar I (Files)

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

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

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

ALGORİTMA VE PROGRAMLAMA I

NESNEYE YÖNELİK PROGRAMLAMA

C++ Dersi: Nesne Tabanlı Programlama

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

C Programlama printf() Fonksiyonu

C ile Uygulamalar 4 - Cevaplar

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

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

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Program Akış Kontrol Yapıları

BLM 111 ALGORİTMA VE PROGRAMLAMA I

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

Fonksiyonlar (Altprogram)

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

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

ALGORİTMA VE PROGRAMLAMA I

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

C++ Dersi: Nesne Tabanlı Programlama

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

BLM 111 Algoritma ve Programlama I Güz 2018

ALGORİTMA VE PROGRAMLAMA II

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

İstanbul Üniversitesi Elektrik Elektronik Mühendisliği DİZİLER. Kaynak: C ve Sistem Programcıları Derneği Kurs notu. Yrd.Doç. Dr.

NOT: Bu kodlar çeşitli internet siteleri, üniversite siteleri ve ders kitaplarından derlenerek hazırlanmıştır.

Döngü ve Koşul Deyimleri

NESNEYE YÖNELİK PROGRAMLAMA

printf("\nbilgilerini goruntulemek istediginiz ogrencinin numarasini girin: "); scanf("%d",&no);

Programlama Dilleri Laboratuvarı

BÖLÜM 9: POINTERLER (İŞARETÇİLER)

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

Transkript:

Strings(Karakter Dizisi) 0 {\ /\ Suhap SAHIN Onur GÖK 1

Tanımlama ve Kullanım char ad[20]; printf("adinizi girin: "); scanf("%s", ad); printf("\nmerhaba %s\n\n", ad); 2

Tanımlama ve Kullanım char ad[20]; printf("adinizi girin: "); scanf("%s", ad); printf("\nmerhaba %s\n\n", ad); 3

Tanımlama ve Kullanım char ad[20]; printf("adinizi girin: "); scanf("%s", ad); printf("\nmerhaba %s\n\n", ad); 4

Tanımlama ve Kullanım char ad[20]; printf("adinizi girin: "); scanf("%s", ad); printf("\nmerhaba %s\n\n", ad); 5

Tanımlama ve Kullanım // Tanimlarken deger atama char s1[20] = "deneme2"; printf("%s\n", s1); 6

Tanımlama ve Kullanım // Tanimlarken deger atama char s1[20] = "deneme2"; printf("%s\n", s1); 7

Tanımlama ve Kullanım // sabit yapma const char *s2 = "deneme3"; printf("%s\n", s2); 8

Tanımlama ve Kullanım // sabit yapma const char *s2 = "deneme3"; printf("%s\n", s2); 9

Tanımlama ve Kullanım // dizinin boyutunu atanan degere gore otomatik belirleme char s3[] = "deneme4"; printf("%s\n", s3); 10

Tanımlama ve Kullanım // dizinin boyutunu atanan degere gore otomatik belirleme char s3[] = "deneme4"; printf("%s\n", s3); 11

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // tamamini karakter karakter yazdirirsak, girilmemis kisim rastgele olur for (i = 0 ; i < 20 ; i++) printf("%c", kelime[i]); printf("\n\n"); 12

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // tamamini karakter karakter yazdirirsak, girilmemis kisim rastgele olur for (i = 0 ; i < 20 ; i++) printf("%c", kelime[i]); printf("\n\n"); 13

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // tamamini karakter karakter yazdirirsak, girilmemis kisim rastgele olur for (i = 0 ; i < 20 ; i++) printf("%c", kelime[i]); printf("\n\n"); 14

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // tamamini karakter karakter yazdirirsak, girilmemis kisim rastgele olur for (i = 0 ; i < 20 ; i++) printf("%c", kelime[i]); printf("\n\n"); 15

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // stringin bittigini anlamak icin '\0' karakteri kullaniliyor // printf %s asagidaki dongu gibi calisiyor for (i = 0 ; kelime[i]!= '\0' ; i++) printf("%c", kelime[i]); printf("\n\n"); 16

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // stringin bittigini anlamak icin '\0' karakteri kullaniliyor // printf %s asagidaki dongu gibi calisiyor for (i = 0 ; kelime[i]!= '\0' ; i++) printf("%c", kelime[i]); printf("\n\n"); 17

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // stringin bittigini anlamak icin '\0' karakteri kullaniliyor // printf %s asagidaki dongu gibi calisiyor for (i = 0 ; kelime[i]!= '\0' ; i++) printf("%c", kelime[i]); printf("\n\n"); 18

Sonlandırma Karakteri char kelime[20]; printf("bir kelime girin: "); scanf("%s", kelime); int i; // stringin bittigini anlamak icin '\0' karakteri kullaniliyor // printf %s asagidaki dongu gibi calisiyor for (i = 0 ; kelime[i]!= '\0' ; i++) printf("%c", kelime[i]); printf("\n\n"); 19

Karakterleri Say Tersten Yazdır char kelime[20]; int karakter_sayisi; int i; printf("bir kelime girin: "); // NOT: birden fazla kelime girilirse ilkini okur. bosluk, tab ve enter //kelime sonunu belirler scanf("%s", kelime); printf("girilen kelime: %s\n", kelime); 20

Karakterleri Say Tersten Yazdır char kelime[20]; int karakter_sayisi; int i; printf("bir kelime girin: "); // NOT: birden fazla kelime girilirse ilkini okur. bosluk, tab ve enter //kelime sonunu belirler scanf("%s", kelime); printf("girilen kelime: %s\n", kelime); 21

Karakterleri Say Tersten Yazdır char kelime[20]; int karakter_sayisi; int i; printf("bir kelime girin: "); // NOT: birden fazla kelime girilirse ilkini okur. bosluk, tab ve enter //kelime sonunu belirler scanf("%s", kelime); printf("girilen kelime: %s\n", kelime); 22

Karakterleri Say Tersten Yazdır char kelime[20]; int karakter_sayisi; int i; printf("bir kelime girin: "); // NOT: birden fazla kelime girilirse ilkini okur. bosluk, tab ve enter //kelime sonunu belirler scanf("%s", kelime); printf("girilen kelime: %s\n", kelime); 23

Karakterleri Say Tersten Yazdır // karakter sayisini sayma islemi karakter_sayisi = 0; while (kelime[karakter_sayisi]!= '\0') karakter_sayisi++; printf("karakter sayisi: %d\n", karakter_sayisi); // karakter sayisini sayma islemi for (karakter_sayisi = 0 ; kelime[karakter_sayisi]!= '\0' ; karakter_sayisi++) { /* bos dongu. sadece harf sayisini arttiriyor */ printf("karakter sayisi: %d\n", karakter_sayisi); 24

Karakterleri Say Tersten Yazdır // karakter sayisini sayma islemi karakter_sayisi = 0; while (kelime[karakter_sayisi]!= '\0') karakter_sayisi++; printf("karakter sayisi: %d\n", karakter_sayisi); // karakter sayisini sayma islemi for (karakter_sayisi = 0 ; kelime[karakter_sayisi]!= '\0' ; karakter_sayisi++) { /* bos dongu. sadece harf sayisini arttiriyor */ printf("karakter sayisi: %d\n", karakter_sayisi); 25

Karakterleri Say Tersten Yazdır // tersten yazdirma printf("tersten yazilisi: "); for (i = karakter_sayisi-1 ; i >= 0; i--) printf("%c", kelime[i]); printf("\n"); 26

gets ve puts fonksiyonları char s[100]; // gets fonksiyonu ile cumle okunabilir (bosluklar dahil). // scanf %s ile kelime okunabiliyor. scanf %s bosluklari almiyor. printf("cumle girin: "); gets(s); printf("cumle: "); puts(s); 27

gets ve puts fonksiyonları char s[100]; // gets fonksiyonu ile cumle okunabilir (bosluklar dahil). // scanf %s ile kelime okunabiliyor. scanf %s bosluklari almiyor. printf("cumle girin: "); gets(s); printf("cumle: "); puts(s); 28

gets ve puts fonksiyonları char s[100]; // gets fonksiyonu ile cumle okunabilir (bosluklar dahil). // scanf %s ile kelime okunabiliyor. scanf %s bosluklari almiyor. printf("cumle girin: "); gets(s); printf("cumle: "); puts(s); 29

gets fonksiyonunun hatası int a = 10; char yazi[8]; int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("yazi girin: "); gets(yazi); // scanf'de de ayni problem var // scanf("%s", yazi); printf("girilen kelime: "); puts(yazi); printf("\na: %d ve b: %d\n", a, b); 30

gets fonksiyonunun hatası int a = 10; char yazi[8]; int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("yazi girin: "); gets(yazi); // scanf'de de ayni problem var // scanf("%s", yazi); printf("girilen kelime: "); puts(yazi); printf("\na: %d ve b: %d\n", a, b); 31

gets fonksiyonunun hatası int a = 10; char yazi[8]; int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("yazi girin: "); gets(yazi); // scanf'de de ayni problem var // scanf("%s", yazi); printf("girilen kelime: "); puts(yazi); printf("\na: %d ve b: %d\n", a, b); 32

gets fonksiyonunun hatası int a = 10; char yazi[8]; int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("yazi girin: "); gets(yazi); // scanf'de de ayni problem var // scanf("%s", yazi); printf("girilen kelime: "); puts(yazi); printf("\na: %d ve b: %d\n", a, b); 33

gets fonksiyonu!!! ISO C11 (2011) standartında gets fonksiyonu kaldırıldı. Derste kullanılan derleyici C99 (1999) standartını kullanmaktadır. Gets fonksiyonu güvenlik açıgı (buffer overflow) olusturmaktadır. Büyük bir string girerek programın akısını bozulabilmektedir. string yerine makine kodu girilirse, programın içindeki verilere hatta bilgisayarın dosya sistemine erisime bile sebep olabilir. Buffer overflow problemi scanf %s ile de ortaya çıkabilir. Dolayısıyla eleman sayısına göre okuma yapılmalıdır. Örnegin string 50 elemanlı ise scanf( %49s, str); seklinde kullanılmalıdır. 34

gets yerine fgets Kullanılısı; char *fgets(char *str, int n, FILE *stream) Parametreler; *str: Okunan string in saklandıgı yeri tutan isaretçi n: Okunacak maksimum karakter sayısı (son bos karakter de dahil) *stream: Sring in okundugu yeri tutan isaretçi 35

gets yerine fgets Kullanılısı; char *fgets(char *str, int n, FILE *stream) Geri dönüs degeri; islem basarılı ise, str isaretçisi döner Dosya Sonu ile karsılasıldıgında veya hiçbir karakter okunmazsa, str isaretçisinin içerigi degismeden kalır ve bos isaretçisi (Null Pointer) döndürülür. döndürülür. Bir hata olusursa, bos isaretçi(null Pointer) döner. Bir hata olusursa, bos isaretçi(null Pointer) döner. 36

gets fonksiyonunun alternatifi Uyarı: fgets fonksiyonu kelimenin sonunda enter ( int a = 10; \n ) karakteri bırakır. Bundan dolayı fgets den char s[8]; // 7 karakter + 1 sonlandirma karakteri hemen sigabilir sonra sondaki \n karakterinin yerine \0 a int b = 20; atanmalıdır. printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter Örnek: girerek test edin\n"); printf("kelime girin: "); fgets(s, 8, stdin); fgets(s, 8, stdin); // gets yerine bu sekilde kullanabiliriz s[strlen(-1)]='\0'; // sondaki \n yerine \0 ata // scanf ile kelime okumak istersek // scanf("%7s", s); printf("girilen kelime: "); puts(s); printf("\na: %d ve b: %d\n", a, b); 37

gets fonksiyonunun alternatifi int a = 10; char s[8]; // 7 karakter + 1 sonlandirma karakteri sigabilir int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("kelime girin: "); fgets(s, 8, stdin); // gets yerine bu sekilde kullanabiliriz // scanf ile kelime okumak istersek // scanf("%7s", s); printf("girilen kelime: "); puts(s); printf("\na: %d ve b: %d\n", a, b); 38

gets fonksiyonunun alternatifi int a = 10; char s[8]; // 7 karakter + 1 sonlandirma karakteri sigabilir int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("kelime girin: "); fgets(s, 8, stdin); // gets yerine bu sekilde kullanabiliriz // scanf ile kelime okumak istersek // scanf("%7s", s); printf("girilen kelime: "); puts(s); printf("\na: %d ve b: %d\n", a, b); 39

gets fonksiyonunun alternatifi int a = 10; char s[8]; // 7 karakter + 1 sonlandirma karakteri sigabilir int b = 20; printf("a: %d ve b: %d\n\n", a, b); printf("programi 8 veya daha fazla karakter girerek test edin\n"); printf("kelime girin: "); fgets(s, 8, stdin); // gets yerine bu sekilde kullanabiliriz // scanf ile kelime okumak istersek // scanf("%7s", s); printf("girilen kelime: "); puts(s); printf("\na: %d ve b: %d\n", a, b); 40

string içinde karakter arama char cumle[100]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); int yer = karakter_ara(cumle, 'a'); if (yer == -1) printf("cumlede a karakteri yok\n"); else printf("cumlede a karakteri %d. indexte var\n", yer); Uyarı: Bu işlemi yapan hazır fonksiyon C kütüphanesinde vardır. 41

string içinde karakter arama char cumle[100]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); int yer = karakter_ara(cumle, 'a'); if (yer == -1) printf("cumlede a karakteri yok\n"); else printf("cumlede a karakteri %d. indexte var\n", yer); 42

string içinde karakter arama char cumle[100]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); int yer = karakter_ara(cumle, 'a'); if (yer == -1) printf("cumlede a karakteri yok\n"); else printf("cumlede a karakteri %d. indexte var\n", yer); 43

string içinde karakter arama char cumle[100]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); int yer = karakter_ara(cumle, 'a'); if (yer == -1) printf("cumlede a karakteri yok\n"); else printf("cumlede a karakteri %d. indexte var\n", yer); 44

string içinde karakter arama int karakter_sayisi(const char *s) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { /* islem yapmadan say */ return i; int karakter_ara(const char *s, char c) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { if (s[i] == c) return i; return -1; 45

string içinde karakter arama int karakter_sayisi(const char *s) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { /* islem yapmadan say */ return i; int karakter_ara(const char *s, char c) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { if (s[i] == c) return i; return -1; 46

string birlestirme Uyarı: Bu işlemi yapan hazır fonksiyon C kütüphanesinde vardır. char cumle_1[100]; char cumle_2[50]; printf("bir cumle girin: "); fgets(cumle_1, 50, stdin); // gets yerine bu sekilde kullanabiliriz printf("eklenecek cumle girin: "); fgets(cumle_2, 50, stdin); // gets yerine bu sekilde kullanabiliriz // cumle_1'in sonuna cumle_2'yi ekle string_ekle(cumle_1, cumle_2); printf("ikinci cumle, birinci cumleye eklendi.\n\n"); puts(cumle_1); 47

string birlestirme char cumle_1[100]; char cumle_2[50]; printf("bir cumle girin: "); fgets(cumle_1, 50, stdin); // gets yerine bu sekilde kullanabiliriz printf("eklenecek cumle girin: "); fgets(cumle_2, 50, stdin); // gets yerine bu sekilde kullanabiliriz // cumle_1'in sonuna cumle_2'yi ekle string_ekle(cumle_1, cumle_2); printf("ikinci cumle, birinci cumleye eklendi.\n\n"); puts(cumle_1); 48

string birlestirme char cumle_1[100]; char cumle_2[50]; printf("bir cumle girin: "); fgets(cumle_1, 50, stdin); printf("eklenecek cumle girin: "); fgets(cumle_2, 50, stdin); // gets yerine bu sekilde kullanabiliriz // cumle_1'in sonuna cumle_2'yi ekle string_ekle(cumle_1, cumle_2); printf("ikinci cumle, birinci cumleye eklendi.\n\n"); puts(cumle_1); 49

string birlestirme char cumle_1[100]; char cumle_2[50]; printf("bir cumle girin: "); fgets(cumle_1, 50, stdin); printf("eklenecek cumle girin: "); fgets(cumle_2, 50, stdin); // cumle_1'in sonuna cumle_2'yi ekle string_ekle(cumle_1, cumle_2); printf("ikinci cumle, birinci cumleye eklendi.\n\n"); puts(cumle_1); 50

string birlestirme char cumle_1[100]; char cumle_2[50]; printf("bir cumle girin: "); fgets(cumle_1, 50, stdin); printf("eklenecek cumle girin: "); fgets(cumle_2, 50, stdin); // cumle_1'in sonuna cumle_2'yi ekle string_ekle(cumle_1, cumle_2); printf("ikinci cumle, birinci cumleye eklendi.\n\n"); puts(cumle_1); 51

string birlestirme int karakter_sayisi(const char *s) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { /* islem yapmadan say */ return i; // bastaki isimli stringe, sondaki isimli stringi ekler void string_ekle(char *bastaki, const char *sondaki) { int bastaki_n = karakter_sayisi(bastaki); int sondaki_n = karakter_sayisi(sondaki); int i; for (i = 0 ; i < sondaki_n ; i++) bastaki[i+bastaki_n] = sondaki[i]; bastaki[bastaki_n+sondaki_n] = '\0'; 52

string birlestirme int karakter_sayisi(const char *s) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { /* islem yapmadan say */ return i; // bastaki isimli stringe, sondaki isimli stringi ekler void string_ekle(char *bastaki, const char *sondaki) { int bastaki_n = karakter_sayisi(bastaki); int sondaki_n = karakter_sayisi(sondaki); int i; for (i = 0 ; i < sondaki_n ; i++) bastaki[i+bastaki_n] = sondaki[i]; bastaki[bastaki_n+sondaki_n] = '\0'; 53

string birlestirme ba k [0] 'B' *bastaki ba k [1] ba k [2] 103 104 İ R char cumle_1[3] = {'B', 'İ', 'R' char cumle_2[3] = {'İ', 'K', 'İ' int bastaki_n = karakter_sayisi(bastaki); 105 so k [0] İ *sondaki int sondaki_n = karakter_sayisi(sondaki); so k [1] K so k [2] İ 54

string birlestirme ba k [0] 'B' *bastaki int bastaki_n = 3 int sondaki_n = 3 ba k [1] ba k [2] 103 İ R for (i = 0 ; i < sondaki_n ; i++) bastaki[i+bastaki_n] = sondaki[i]; 104 105 so k [0] İ *sondaki for (i = 0 ; i < 3 ; i++) bastaki[i+3] = sondaki[i]; so k [1] K so k [2] İ 55

string birlestirme ba k [0] ba k [1] ba k [2] ba k [3] ba k [4] ba k [5] 'B' İ R İ K İ *bastaki bastaki[bastaki_n+sondaki_n] = '\0'; bastaki[3+3] = '\0'; ba k [6] \0 107 108 56

string birlestirme int karakter_sayisi(const char *s) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { /* islem yapmadan say */ return i; // bastaki isimli stringe, sondaki isimli stringi ekler void string_ekle(char *bastaki, const char *sondaki) { int bastaki_n = karakter_sayisi(bastaki); int sondaki_n = karakter_sayisi(sondaki); int i; for (i = 0 ; i < sondaki_n ; i++) bastaki[i+bastaki_n] = sondaki[i]; bastaki[bastaki_n+sondaki_n] = '\0'; 57

string içerisinde string arama char cumle[100]; char aranan[20]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("aranan kelime: "); scanf("%20s", aranan); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); printf("aranan kelimenin uzunlugu: %d\n", karakter_sayisi(aranan)); int var = string_ara(cumle, aranan); if (var == 0) { printf("aranan kelime cumlede yok\n"); else { printf("aranan kelime cumlede var\n"); Uyarı: Bu işlemi yapan hazır fonksiyon C kütüphanesinde vardır. 58

string içerisinde string arama char cumle[100]; char aranan[20]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("aranan kelime: "); scanf("%20s", aranan); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); printf("aranan kelimenin uzunlugu: %d\n", karakter_sayisi(aranan)); int var = string_ara(cumle, aranan); if (var == 0) { printf("aranan kelime cumlede yok\n"); else { printf("aranan kelime cumlede var\n"); 59

string içerisinde string arama char cumle[100]; char aranan[20]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("aranan kelime: "); scanf("%20s", aranan); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); printf("aranan kelimenin uzunlugu: %d\n", karakter_sayisi(aranan)); int var = string_ara(cumle, aranan); if (var == 0) { printf("aranan kelime cumlede yok\n"); else { printf("aranan kelime cumlede var\n"); 60

string içerisinde string arama char cumle[100]; char aranan[20]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("aranan kelime: "); scanf("%20s", aranan); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); printf("aranan kelimenin uzunlugu: %d\n", karakter_sayisi(aranan)); int var = string_ara(cumle, aranan); if (var == 0) { printf("aranan kelime cumlede yok\n"); else { printf("aranan kelime cumlede var\n"); 61

string içerisinde string arama char cumle[100]; char aranan[20]; printf("bir cumle girin: "); fgets(cumle, 100, stdin); // gets yerine bu sekilde kullanabiliriz // gets(cumle); printf("aranan kelime: "); scanf("%20s", aranan); printf("cumlenin uzunlugu: %d\n", karakter_sayisi(cumle)); printf("aranan kelimenin uzunlugu: %d\n", karakter_sayisi(aranan)); int var = string_ara(cumle, aranan); if (var == 0) { printf("aranan kelime cumlede yok\n"); else { printf("aranan kelime cumlede var\n"); 62

string içerisinde string arama int karakter_sayisi(const char *s) { int i; for (i = 0 ; s[i]!= '\0' ; i++) { /* islem yapmadan say */ return i; 63

string içerisinde string arama int string_ara(const char *s, const char * aranan) { int i, j; int s_n = karakter_sayisi(s); int aranan_n = karakter_sayisi(aranan); for (i = 0 ; i <= s_n-aranan_n ; i++) { // i'den basla, aranan_n tanesi ayni mi bak for (j = 0 ; j < aranan_n ; j++) { if (s[i+j]!= aranan[j]) break; // farkliysa digerlerine bakmaya gerek yok // eger j == aranan_n olduysa: j dongusu bitmis ve aranan_n tanesi aynidir if (j == aranan_n) return 1; // return var 64

string içerisinde string arama cu [0] cu [1] 'B' A *s char cumle[5] = {'B', 'A', 'K', 'I', 'R' cu [2] K char aranan[2] = {'I', 'R' cu [3] cu [4] 105 ar [0] I R I *aranan int s_n = karakter_sayisi(s); int aranan_n = karakter_sayisi(aranan); ar [1] R 108 65

string içerisinde string arama cu [0] cu [1] 'B' A *s char cumle[5] = {'B', 'A', 'K', 'I', 'R' cu [2] K char aranan[2] = {'I', 'R' cu [3] cu [4] 105 ar [0] ar [1] I R I R *aranan int s_n = 5 int aranan_n = 2 for (i = 0 ; i <= s_n-aranan_n ; i++) 108 for (i = 0 ; i <= (5-2) ; i++) 66

string içerisinde string arama int string_ara(const char *s, const char * aranan) { int i, j; int s_n = karakter_sayisi(s); int aranan_n = karakter_sayisi(aranan); for (i = 0 ; i <= s_n-aranan_n ; i++) { // i'den basla, aranan_n tanesi ayni mi bak for (j = 0 ; j < aranan_n ; j++) { if (s[i+j]!= aranan[j]) break; // farkliysa digerlerine bakmaya gerek yok // eger j == aranan_n olduysa: j dongusu bitmis ve aranan_n tanesi aynidir if (j == aranan_n) return 1; // return var 67

string içerisinde string arama cu [0] cu [1] 'B' A *s char cumle[5] = {'B', 'A', 'K', 'I', 'R' char aranan[2] = {'I', 'R' cu [2] K cu [3] cu [4] 105 ar [0] ar [1] 108 I R I R *aranan for (i = 0 ; i <= 3 ; i++) { for (j = 0 ; j < 2 ; j++) { if (s[i+j]!= aranan[j]) break; 68

string içerisinde string arama int string_ara(const char *s, const char * aranan) { int i, j; int s_n = karakter_sayisi(s); int aranan_n = karakter_sayisi(aranan); for (i = 0 ; i <= s_n-aranan_n ; i++) { for (j = 0 ; j < aranan_n ; j++) { if (s[i+j]!= aranan[j]) break; // eger j == aranan_n olduysa: j dongusu bitmis ve aranan_n tanesi aynidir if (j == aranan_n) return 1; // return var 69

Sorular 70