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

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

STRİNG DİZİLER(KATARLAR)

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

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

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

C Konsol Giriş Çıkış Fonksiyonları

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

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

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ DERS 2

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

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Eln 1001 Bilgisayar Programlama I

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

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.

Hafta 12 Karakter Tutan Diziler

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Temel Giriş/Çıkış Fonksiyonları

Giriş. ENF102 Jeoloji

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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

Fonksiyonlar (Altprogram)

İnternet Programcılığı Dersi 2.Dönem Ders Notu

C++ Operatörler (Operators)

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

ALGORİTMA VE PROGRAMLAMA I

Diziler & Karakter Katarı (String)

Programlama Dilleri 1. Ders 4: Diziler

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

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

C PROGRAMLAMA D İ L İ

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

Programlama Dilleri Laboratuvarı

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

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

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

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Java da Dizi Tanımlama

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

Telefon Rehberi Uygulaması

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

3. VERİ GİRİŞ-ÇIKIŞI (4ncü hafta)

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

Strings(Karakter Dizisi)

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

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

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

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

C ile Uygulamalar 2 - Cevaplar

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

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

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

/* Çember alanını hesaplar */

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

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

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

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

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

Internet Programming II

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

C# Çalışma Örnekleri

Ders 5: Temel Kütüphane Fonksiyonlar

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

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

Biçem Belirteçleri (Format Specifiers)

C Programlama Dilininin Basit Yapıları

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

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

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

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

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

Internet Programming II

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

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

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

Diziler (Arrays) Çok Boyutlu Diziler

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

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

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


C dilinde if-else yapısı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

MATLAB/Değişkene Değer Atamak

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

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

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

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

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

2. Dereceden Denklemin Köklerini Bulan Program

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

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

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BÖLÜM 2 C PROGRAMLAMADA AKIŞ KONTROLÜ. GOTO: C programında programın herhangi bir yerinden bir yerine şartsız olarak atlanmasını sağlayan komuttur.

Transkript:

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

String ve Karakter Tanımlama Tek bir karakter tanımlamak: char a; Bir karakter dizisi tanımlamak: char a[10]; Pointer kullanarak char *a= ali ; Pointer kullanmadan char a[]= ali ; Bir String dizisi tanımlamak: char a[][10]= ali, veli, alim ;

String ve Karakterleri Ekrana yazdırmak char ad[40]="ali Uzunkavakaltindauyuyanoglu"; //40 karakterlik ad isimli string bir değişkene değer atandı printf (ad);//string değişken formatsız ekrana yazdırıldı printf ("\n%s",ad); //normal formatlı kullanım printf ("\n%.5s",ad);//ilk 5 karakter ekrana yazdırıldı printf ("\n%s",ad+8);//8.karakterden sonrası yazdırıldı. cout << ad; //C++ için printf komutunun eşdeğer, cout << ad+8<<"\n";//8.karakterden sonrası yazdırıldı puts (ad); //printf (ad); eşdegeri //Tek bir karakteri ekrana yazdırmak için; putchar (ad[5]); //ad dizisinin 5. karakterini yazar printf ("\n%c %C %c ", ad[0], ad[1], ad[2]); //ad dizisinin ilk 3 karakterini yazar for (i=0; i<strlen(ad); i++) printf ("%c",ad[i]); //Bir döngü içerisinde bütün karakterler ekrana yazdırıldı.

Klavyeden girilen String ifadeyi Almak Klavyeden girilen bir karakteri Almak char Ad; scanf ("%c", &Ad); //Ad=getchar(); printf ("basilan karakter [%c] dir", Ad);

String Sabitler Nasıl Depolanır? Derleyici, n karakterlik bir string sabit için bellekte n+1 byte yer ayırır. Sebebi; String karakterlerin sonuna null ( \0 ) karakterini yerleştirmesidir. Sakın \0 (null) ile 0 (Sıfır) karıştırmayın. Birinin ASCII kod karşılığı 0 iken diğerinin ki 48 dir.

String işlem Komutları/Fonksiyonları (string.h) kütüphanesi altında çalışan fonksiyonlar; strcat (s,t) : s nin sonuna t yi ekler strncat(s,t,n): s nin sonuna n adet t ekler strcmp (s,t): s ile t yi karşılaştırır. Eğer s<t ise negatif, s==t ise 0, s>t ise pozitif bir değer döndürür. strncmp (s,t,n): s ile t yi n. Karaktere kadar karşılaştırır. strcmp(), null karakterini görene kadar bütün karakterleri karşılaştırırken, strncmp( ) n. Karaktere kadar karşılaştırma yapar strcpy(s,t): t yi s ye kopyalar strncpy(s,t,n): t nin n. Karakterine kadar s ye kopyalar strlen(s): s nin uzunluğunu verir strrev(s): s nin karakterlerini(cümleyi) ters çevirir. strlwr(s): s yi küçük harfe dönüştürür. strupr (s): s yi büyük harfe dönüştürür. strchr(s,c): s içerisinde c yi baştan arar, bulamazsa 0(NULL) döndürür strrchr(s,c):s içerisinde c yi sondan arar, bulamazsa 0(NULL) döndürür

char ad[30]="alim"; char soyad[30]="uzunkavakaltindauyumazoglu"; char B[20]; printf ("%.6s\n",soyad); //Uzunka printf ("%s\n", soyad+15);//auyumazoglu printf ("%d\n", strlen(ad));//4 printf ("%s\n", strrev(ad));//mila printf ("%s\n", strlwr(soyad));//tamami küçük harf printf ("%s\n", strupr(soyad));//tamami büyük harf printf ("%s\n", strcat(ad,soyad)); printf ("%s\n", strcpy(ad,soyad)); strncpy(b,soyad+10,10); printf ("%s\n",b);

Karakter Fonksiyonları (ctype.h) ispunct(k) k bir noktalama karakteri ise sıfırdan farklı, değilse sıfır üretir.

Klavyeden girilen bir Stringi tersten ekrana yazdıran program #include <cstdlib> #include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main() char isim[30]; //Cin, scanf, gets klavyeden string alır printf("cumleyi giriniz\n"); gets(isim);//ismi al strrev(isim);//ters çevir printf ("%s\n", isim); //ekrana yaz system("pause");

II. Yol : Klavyeden girilen bir Stringi tersten ekrana yazdıran program (strrev kullanmadan) #include <iostream>//cout #include <stdio.h> //gets, printf #include <string.h>//strlen #include <conio.h> //getch() using namespace std; int main() char strdizi[50]; int len, i; char tmp; cout << "Cumle: "; gets(strdizi); len = strlen(strdizi); cout << "\ntersi: "; for (i = len; i >=0; i--) tmp = strdizi[i]; printf ("%c", tmp); getch(); int main() char Ad[30]; gets(ad); int i,uz=strlen(ad); for (i=uz; i>=0; i--) printf ("%c", Ad[i]); getch();

Bir Stringi tersten ekrana yazdıran program Bir String diziden n adet karakteri başka bir diziye kopyalayan program #include <stdio.h> #include <string.h> #include <iostream> using namespace std; int main() char A[8]="SAKARYA"; printf ("%s\n", strrev(a) ); #include <stdio.h> #include <string.h> #include <iostream> using namespace std; int main() int i; char B[5], A[8]="SAKARYA"; strncpy(b,a,4); for (i=0; i<4; i++ ) printf ("%c\n", B[i] );

Soru: Türkçe-İngilizce Günleri Gösteren Bir Sözlük #include <conio.h> #include <stdio.h> #include <string.h> using namespace std; int main() char tr[][20]="pazartesi","sali", "Carsamba", "Persembe", "Cuma","Cumartesi","Pazar"; char en[][20]="monday","tuesday", "Wednesdey", "Thursday", "Friday","Saturday","Sunday"; char gun[20]; int i; printf ("Gun giriniz..:"); gets(gun); for (i=0; i<7; i++) if (strcmp(gun,tr[i])==0) //girilen gun tr dizisinde varsa printf ("%s...: %s",tr[i], en[i]); break; if (strcmp(gun,tr[i])!=0) printf ("\nsozlukte yoktur"); getch();

C/C++ dili Tip(Stringden Sayısala veya Tam Tersi) Dönüşümleri itoa fonksiyonu, int tipindeki ondalık sayıyı (intdegisken), sayitabani ile gösterilen 2 lik, 8 lik veya 16 lık sayı tabanına dönüştürerek sonucu string bir değişkende (stringdegisken) tutar. atoi fonksiyonu ile tam tersi işleve sahiptir. Kullanım şekli; itoa (intdegisken, stringdegisken, sayitabani); atoi fonksiyonu, String / sözel biçimde bulunan sayısal bilgiyi tamsayı biçimine dönüştürür. NULL karakterini yâda ilk sözel karakteri gördüğünde işlemi sonlandırır. Geri dönüş değeri int veri tipi değeridir. int b=atoi(strs); //string sayı int sayı tipine tekrar dönüştürüldü. atof fonksiyonu: String / sözel biçimde bulunan kesirli sayıyı double biçimine dönüştürür. NULL karakterini yâda nokta dışında ilk sözel karakteri gördüğünde işlemi sonlandırır. atol fonksiyonu: String / sözel biçimde bulunan sayısal bilgiyi tamsayı biçimine dönüştürür. NULL karakterini yâda ilk sözel karakteri gördüğünde işlemi sonlandırır. Geri dönüş değeri long veri tipi değeridir.

Soru: Aşağıdaki ekran çıktısını verecek C/C++ programını yazınız. itoa(i, s, 2); //ikili sayı sistemine string formatta dönüştürüldü. int b=atoi(s); //string sayı int sayı tipine tekrar dönüştürüldü.

Olası hatayı bulunuz? #include <stdio.h> #include <conio.h> #include <string.h> int main(void) char *p1="abc", p2[][12]= Kara Deniz"; printf("%s %s %s\n", p1, p2, strcat(p1, p2)); getch();

Girilen bir cümledeki harflerin sayısını ve kendisini veren uygulama (isalpha) #include <stdio.h> #include <string.h> #include <conio.h> #include <ctype.h> int main(void) char cumle[50]; char harf[50]; int i, sayac=0; gets(cumle); for (i=0; i< strlen(cumle); i++) if (isalpha(cumle[i])!=0) harf[sayac]=cumle[i]; sayac++; printf ("Cumledeki harf sayisi..:%d\nharler..:",sayac); for (i=0; i<sayac; i++) printf ("%c ",harf[i]); getch();

Girilen bir cümledeki kelime sayısını bulan uygulama (isspace) #include <stdio.h> #include <string.h> #include <conio.h> #include <ctype.h> int main(void) char cumle[50]; int i, sayac=0; gets(cumle); for (i=0; i< strlen(cumle); i++) if (isspace(cumle[i])!=0) sayac++; printf ("\ncumledeki kelime sayisi..:%d",sayac+1); getch();

Password programı #include <conio.h> #include <stdio.h> #include <string.h> using namespace std; int main() char sifre[20]; int sayac=0; do printf ("password giriniz..:"); gets(sifre); if (strcmp(sifre,"44ali")==0) //girilen sifre dogru ise printf ("sifre dogru"); break; sayac++; while (sayac<3); if (sayac>=3) printf ("\nhakkiniz doldu"); getch();