56
STRİNG STRİNG FONKSİYONLARI FONKSİYONLARI

STRİNG FONKSİYONLARI

  • Upload
    cora

  • View
    66

  • Download
    0

Embed Size (px)

DESCRIPTION

STRİNG FONKSİYONLARI. String. Stringler, char tipinde bildirilen karakter dizileridir ve harfler, rakamlar, veya bazı sembollerden oluşurlar. Genel olarak bir string bildirimi: char string_adı[eleman_sayısı];yada char *string_adı;şeklinde yapılır. Scanf ve Printf. - PowerPoint PPT Presentation

Citation preview

STRİNGSTRİNGFONKSİYONLARIFONKSİYONLARI

Stringler, char tipinde bildirilen Stringler, char tipinde bildirilen karakter dizileridir ve harfler, karakter dizileridir ve harfler, rakamlar, veya bazı sembollerden rakamlar, veya bazı sembollerden oluşurlar.oluşurlar.

Genel olarak bir string bildirimi:Genel olarak bir string bildirimi:

char string_adı[eleman_sayısı];yadachar string_adı[eleman_sayısı];yada

char *string_adı;şeklinde yapılır. char *string_adı;şeklinde yapılır.

StringString

printf() ve scanf() fonksiyonları diğer printf() ve scanf() fonksiyonları diğer tiplerde olduğu gibi formatlı tiplerde olduğu gibi formatlı okuma/yazma amaçlı kullanılır.String okuma/yazma amaçlı kullanılır.String formatı %s dir.formatı %s dir.

Genellikle bir döngü içersinde, her dizi Genellikle bir döngü içersinde, her dizi elemanı için scanf(  ) veya printf(  ) elemanı için scanf(  ) veya printf(  ) fonksiyonunu çağırmamız gerekiyordu. fonksiyonunu çağırmamız gerekiyordu. String için böyle bir mecburiyet String için böyle bir mecburiyet bulunmuyor. Tek bir kelimeyi, tek bir bulunmuyor. Tek bir kelimeyi, tek bir scanf(  ) fonksiyonuyla okutabilir ve scanf(  ) fonksiyonuyla okutabilir ve elemanlara otomatik değer elemanlara otomatik değer atayabilirsiniz.atayabilirsiniz.

Scanf ve PrintfScanf ve Printf

Gets ve Puts Gets ve Puts puts() fonksiyonu bir karakter dizisini ekrana puts() fonksiyonu bir karakter dizisini ekrana

yazdırmak için kullanılır. Bu fonksiyon diziyi yazdırmak için kullanılır. Bu fonksiyon diziyi ekrana yazdırdıktan sonra imleci bir sonraki ekrana yazdırdıktan sonra imleci bir sonraki satıra geçirir.satıra geçirir.

char *str = "Hangi cilgin bana zincir char *str = "Hangi cilgin bana zincir vuracakmis sasarim";vuracakmis sasarim";

...... puts(str);puts(str); gets(  ) isminden anlayacağınız ( gets(  ) isminden anlayacağınız ( get stringget string )  )

gibi stringe değer atamak için kullanılır. gibi stringe değer atamak için kullanılır. gets(  ) atayacağı değerin ayrımını gets(  ) atayacağı değerin ayrımını yapabilmek için 'yapabilmek için '\n\n' aramaktadır. Yani ' aramaktadır. Yani klavyeden Enter'a basılana kadar girilen her klavyeden Enter'a basılana kadar girilen her şeyi, tek bir stringe atayacaktır. şeyi, tek bir stringe atayacaktır.

Karakter DizisiKarakter Dizisi Diziler sadece sayısal değişkenlerde ve sayısal Diziler sadece sayısal değişkenlerde ve sayısal

işlemlerde kullanılmazlar.Bir çok kez cümle vb. işlemlerde kullanılmazlar.Bir çok kez cümle vb. yapılarda aslında karakter dizileri kullanırız.yapılarda aslında karakter dizileri kullanırız.

Karakter dizileri normal bir dizi tanımlanıyormuş Karakter dizileri normal bir dizi tanımlanıyormuş gibi tanımlanır sadece tür değimi char olarak gibi tanımlanır sadece tür değimi char olarak seçilir. Bu karakter dizeleri ile ilgili bir takım seçilir. Bu karakter dizeleri ile ilgili bir takım işlemleri gerçekleştirmek için gerekli olabilecek işlemleri gerçekleştirmek için gerekli olabilecek fonksiyonlar "string.h" kütüphanesi içerisindedir. fonksiyonlar "string.h" kütüphanesi içerisindedir.

Eğer bir karakter dizisinin eleman sayısı Eğer bir karakter dizisinin eleman sayısı belirtilmezse, başlangıçta bildirilen karakter sayısı belirtilmezse, başlangıçta bildirilen karakter sayısı kaç tane ise dizinin eleman sayısı o kadar olduğu kaç tane ise dizinin eleman sayısı o kadar olduğu varsayılır.varsayılır.

Diğer dizi bildirimlerinde olduğu gibi, Diğer dizi bildirimlerinde olduğu gibi, karakter dizilerine başlangıç değeri karakter dizilerine başlangıç değeri verilebilir.Örneğin aşağıda verilen iki verilebilir.Örneğin aşağıda verilen iki bildirim aynı anlamdadır:bildirim aynı anlamdadır:

char s[5]={'I','z','m','i','r','\0'};char s[5]={'I','z','m','i','r','\0'};

char s[5]="Izmir";char s[5]="Izmir";

Birinci satırdaki bildirimde '\0' (NULL) Birinci satırdaki bildirimde '\0' (NULL) sonlandırıcı karakter dizisinin sonlandığını sonlandırıcı karakter dizisinin sonlandığını gösterir.Sonlandırıcı karakter, karakter gösterir.Sonlandırıcı karakter, karakter dizileri üzerinde işlemlerin hızlı ve etkin bir dizileri üzerinde işlemlerin hızlı ve etkin bir biçimde yapılabilmesine olanak sağlar. biçimde yapılabilmesine olanak sağlar.

DizgiDizgi Bir dizi karakterden oluşur. '\0' karakteri Bir dizi karakterden oluşur. '\0' karakteri

dizginin sonunu gösterir.Dizgi sabitler çift dizginin sonunu gösterir.Dizgi sabitler çift tırnak içinde gösterilir. Bu ifadede dil \0 tırnak içinde gösterilir. Bu ifadede dil \0 karakterini otomatik koyar.karakterini otomatik koyar.

"ALİ", "Bir sayı girin""ALİ", "Bir sayı girin" Karakter ile dizgi birbirinden farklı Karakter ile dizgi birbirinden farklı

şeylerdir. Dizginin sonunda her zaman \0 şeylerdir. Dizginin sonunda her zaman \0 karakteri vardır.'A' ile "A" birbirinin aynısı karakteri vardır.'A' ile "A" birbirinin aynısı değildir. 'A' karakterini gösteren 65 değildir. 'A' karakterini gösteren 65 değerinde bellekte int olarak saklanırken değerinde bellekte int olarak saklanırken "A" ise bir dizgi olup A ve \0 karakterlerini "A" ise bir dizgi olup A ve \0 karakterlerini içerir.içerir.

Tanımlama BiçimleriTanımlama Biçimleri

Dizi şeklinde tanımlamaDizi şeklinde tanımlama char a[7] = {'K','O',,'C','A','E','L','İ'}; char a[7] = {'K','O',,'C','A','E','L','İ'};

char a[8] = "KOCAELİ"; char a[8] = "KOCAELİ";

/* Son eleman olrak \0 karakteri /* Son eleman olrak \0 karakteri eklendiği için eleman sayısını bir eklendiği için eleman sayısını bir fazla belirtmeli */fazla belirtmeli */

İşaretçi olarak tanımlamaİşaretçi olarak tanımlama char *char *değişken;değişken;

char *a;char *a;

Değerini YazdırmaDeğerini Yazdırma printf("%s", a);printf("%s", a); puts(a);puts(a);

Tek bir kelimeyi, tek bir scanf(  ) fonksiyonuyla Tek bir kelimeyi, tek bir scanf(  ) fonksiyonuyla okutabilir ve elemanlara otomatik değer okutabilir ve elemanlara otomatik değer atayabilirsiniz. Yani "Merhaba" şeklinde bir girdi-atayabilirsiniz. Yani "Merhaba" şeklinde bir girdi-input gelirse, 3.dizi elemanı 'r' olurken; 6.dizi input gelirse, 3.dizi elemanı 'r' olurken; 6.dizi elemanı 'b' olur. Önceki dizilerde gördüğümüzün elemanı 'b' olur. Önceki dizilerde gördüğümüzün aksine, eleman atamaları kendiliğinden aksine, eleman atamaları kendiliğinden gerçekleşir. gerçekleşir.

Stringlere değer atarken ya da stringlerden değer Stringlere değer atarken ya da stringlerden değer okurken, sadece string adını yazmanız yeterlidir. okurken, sadece string adını yazmanız yeterlidir. Yani scanf(  ) fonksiyonu içersine & işareti Yani scanf(  ) fonksiyonu içersine & işareti koymamız gerekmiyor. Çünkü scanf(  ), stringin ilk koymamız gerekmiyor. Çünkü scanf(  ), stringin ilk adresinden başlayarak aşağıya doğru harfleri tek adresinden başlayarak aşağıya doğru harfleri tek tek ataması gerektiğini biliyor.  tek ataması gerektiğini biliyor. 

Değer AtamaDeğer Atama

char a[20];char a[20];char *b;char *b;a[0] = 'A';a[0] = 'A';

/* dizinin bir elemanına değer verir /* dizinin bir elemanına değer verir gibi ve tek tırnak içinde ( karakter gibi ve tek tırnak içinde ( karakter sabiti) */sabiti) */

\0 karakteri ayrıca belirtilmelidir.\0 karakteri ayrıca belirtilmelidir.

Karakter Dizisinin Herhangi Bir Karakter Dizisinin Herhangi Bir Karakterine ErişmeKarakterine Erişme

Dizilerde olduğu gibi erişilmek Dizilerde olduğu gibi erişilmek istenen karakterin indisi bildirilir.istenen karakterin indisi bildirilir.

a[2] = 'G'; b[2] = 'G';a[2] = 'G'; b[2] = 'G';

a[4] = '\0'; a[4] = '\0';

printf("%c ", b[3]);printf("%c ", b[3]);

/* b'nin 4. elemanını yazar */ /* b'nin 4. elemanını yazar */

string.h kütüphanesine ait string.h kütüphanesine ait bazı fonksiyonlarbazı fonksiyonlar

int strcmp(char *str1,char int strcmp(char *str1,char *str2);str1 ve str2 yi karşlaştırır. *str2);str1 ve str2 yi karşlaştırır. Eşitse 0, str1 büyükse 0'dan büyük Eşitse 0, str1 büyükse 0'dan büyük bir değer aksi halde 0'dan küçük bir bir değer aksi halde 0'dan küçük bir değer göderir.değer göderir.

char *strcpy(char *str1,char *strcpy(char *str1,char*str2);str2 yi str1 e kopyalar.char*str2);str2 yi str1 e kopyalar. char *strcat(char *str1,char char *strcat(char *str1,char

*str2);str2 yi str1 e ekler.*str2);str2 yi str1 e ekler.

char *strrev(str);str yi ters çevirir.char *strrev(str);str yi ters çevirir. int strlen(str);str nin kaç karakterden int strlen(str);str nin kaç karakterden

oluştuğunu hesaplar.oluştuğunu hesaplar. char *strstr(char *str1,char char *strstr(char *str1,char

*str2);str2 katarının str1 içindeki *str2);str2 katarının str1 içindeki (baştan itibaren) ilk karşılaştığı yeri (baştan itibaren) ilk karşılaştığı yeri verir.verir.

char *strlwr(char *str);str nin bütün char *strlwr(char *str);str nin bütün karakterini küçük harfe çevirir.karakterini küçük harfe çevirir.

char *strupr(char *str);str nin bütün char *strupr(char *str);str nin bütün karakterini büyük harfe çevirir.karakterini büyük harfe çevirir.

ÖrneklerÖrnekler #include <stdio.h>  #include <stdio.h>   int main()int main() {{ int i;int i; char kelime[3]; char kelime[3];  kelime[0]= 'a';kelime[0]= 'a'; kelime[1]= 'b';kelime[1]= 'b'; kelima[2]= 'c'; kelima[2]= 'c';     for(i=0;i<3; i++) for(i=0;i<3; i++) {{ printf("index %d : %c", i,kelime[i]);printf("index %d : %c", i,kelime[i]); }} return 0;return 0; } } 

Buradaki örneğimizde öncelikle 3 Buradaki örneğimizde öncelikle 3 boyutunda bir string tanımladık. boyutunda bir string tanımladık.

Ardından sırayla stringin elemanlarını Ardından sırayla stringin elemanlarını doldurduk. doldurduk.

Son olarakta bunları bir döngüyle Son olarakta bunları bir döngüyle kullanıcıya geri bastırdık.   kullanıcıya geri bastırdık.  

Stringleri bu şekilde karakter Stringleri bu şekilde karakter karakter doldurmak çok yorucu bir iş.karakter doldurmak çok yorucu bir iş.

Bunun yerine biz gets() Bunun yerine biz gets() fonksiyonunu kullanacağız. fonksiyonunu kullanacağız.

Şimdiki örneğimizi gets fonksiyonu Şimdiki örneğimizi gets fonksiyonu kullanarak yapalım.kullanarak yapalım.

#include <stdio.h>#include <stdio.h> #include <string.h> #include <string.h>  main()main() {{ int i;int i; char kelime[100]; char kelime[100];  printf("Bir kelime giriniz\n");printf("Bir kelime giriniz\n"); gets(kelime); gets(kelime);  printf("%s", kelime);printf("%s", kelime); return 0;return 0; } } 

Kodumuza bakacak olursak bir string Kodumuza bakacak olursak bir string tanımladık 100 boyutunda. (En fazla 100 tanımladık 100 boyutunda. (En fazla 100 boyutunda bir kelime girilebilir). Gets boyutunda bir kelime girilebilir). Gets fonksiyonunun kullanımı gördüğünüz gibi fonksiyonunun kullanımı gördüğünüz gibi çok kolay. Sadece içine string ismini çok kolay. Sadece içine string ismini yollamak yeterli oluyor. Ardındansa yollamak yeterli oluyor. Ardındansa stringimizi ekrana bastırdık. Bunun için stringimizi ekrana bastırdık. Bunun için geçen seferki gibi döngü kullanmadık , geçen seferki gibi döngü kullanmadık , sadece tek bir printfle %s (string olduğunu sadece tek bir printfle %s (string olduğunu belirtir) kullanarak bastırdık.  belirtir) kullanarak bastırdık. 

Bir string i farklı yöntemlerle ekrana Bir string i farklı yöntemlerle ekrana yazdırılmasıyazdırılması

#include <stdio.h>#include <stdio.h>

int main()int main() {{ char dizi[7] = {'S', 'e', 'l', 'a', 'm', '!', '\0'};char dizi[7] = {'S', 'e', 'l', 'a', 'm', '!', '\0'}; int i;int i;

/* Herbir karakteri ayrı ayrı alt alta yaz *//* Herbir karakteri ayrı ayrı alt alta yaz */ printf("Dizi elemanlari:\n");printf("Dizi elemanlari:\n"); for (i=0; i<7; i++)for (i=0; i<7; i++) printf("dizi[%d] icerigi: %c\n", i, dizi[i]);printf("dizi[%d] icerigi: %c\n", i, dizi[i]); printf("\n");printf("\n");

/* 1. yöntem: her elemanı yanyana yaz *//* 1. yöntem: her elemanı yanyana yaz */ printf( "Butun dizi (1.yontem): ");printf( "Butun dizi (1.yontem): "); for (i=0; i<7; i++)for (i=0; i<7; i++) printf("%c", dizi[i]);printf("%c", dizi[i]);

/* 2. Yöntem: bütün diziyi yaz *//* 2. Yöntem: bütün diziyi yaz */ printf("\nButun dizi (2.yontem): ");printf("\nButun dizi (2.yontem): "); printf("%s\n", dizi);printf("%s\n", dizi);

printf("\n");printf("\n");

return 0;return 0; }}

ÇIKTIÇIKTI

Dizi elemanlari:Dizi elemanlari: dizi[0] icerigi: Sdizi[0] icerigi: S dizi[1] icerigi: edizi[1] icerigi: e dizi[2] icerigi: ldizi[2] icerigi: l dizi[3] icerigi: adizi[3] icerigi: a dizi[4] icerigi: mdizi[4] icerigi: m dizi[5] icerigi: !dizi[5] icerigi: ! dizi[6] icerigi:dizi[6] icerigi:

Butun dizi (1.yontem): Selam!Butun dizi (1.yontem): Selam! Butun dizi (2.yontem): Selam!Butun dizi (2.yontem): Selam!

Bir string içinde 'm' karakterinin Bir string içinde 'm' karakterinin sayısını öğrenmesayısını öğrenme

#include <stdio.h>#include <stdio.h> int main()int main() { { char str[20]; char str[20]; int i,int i, sayac=0; sayac=0; printf("Bir string girin: "); printf("Bir string girin: "); gets(str); gets(str); for(i=0; for(i=0; str[i] != '\0'; i++) str[i] != '\0'; i++) if( str[i] == 'm') sayac++; if( str[i] == 'm') sayac++; printf("'m' karakteri sayisi = %d\n",sayac); printf("'m' karakteri sayisi = %d\n",sayac); return 0;} return 0;}

ÇIKTIÇIKTI

Bir katar girin: Bir katar girin: marmaramarmara'm' 'm' karakteri sayisi = 2karakteri sayisi = 2

Bir string yazdırmaBir string yazdırma [/* [/* Bir elemanları string olan karakter dizisini yazdırma Bir elemanları string olan karakter dizisini yazdırma */ ] */ ]

#include <stdio.h>#include <stdio.h> int main()int main() { { char *gun[7] = { "Pazartesi", "Sali", char *gun[7] = { "Pazartesi", "Sali",

"Carsamba", "Persembe", "Carsamba", "Persembe", "Cuma", "Cumartesi", "Pazar" }; "Cuma", "Cumartesi", "Pazar" };

int i; int i; for(i=0; i<7; i++) for(i=0; i<7; i++) printf("%d. %s\n",i+1,gun[i]);printf("%d. %s\n",i+1,gun[i]); return 0;} return 0;}

ÇIKTIÇIKTI

1. Pazartesi1. Pazartesi 2. Sali2. Sali 3. Carsamba3. Carsamba 4. Persembe4. Persembe 5. Cuma5. Cuma 6. Cumartesi6. Cumartesi 7. Pazar7. Pazar

strcmp strcmp fonksiyonunun kullanımıfonksiyonunun kullanımı[[Basit bir şifre programı. Kullanıcı en fazla 3 kez yanlış şifreBasit bir şifre programı. Kullanıcı en fazla 3 kez yanlış şifre ]]

int main()int main() { char sifre[8]; { char sifre[8]; int sonuc, hak=3; int sonuc, hak=3; while( hak-- > 0 ) while( hak-- > 0 ) { { printf("Sifre : "); printf("Sifre : "); gets(sifre); /* şifreyi al */ sonuc = gets(sifre); /* şifreyi al */ sonuc =

strcmp(sifre,"elma%xj4"); strcmp(sifre,"elma%xj4"); if( sonuc==0 )if( sonuc==0 ) { /* şifre kontrol */ { /* şifre kontrol */ puts("sifre dogru"); puts("sifre dogru"); break; } break; } else puts("sifre yanlis"); else puts("sifre yanlis"); } } return 0;} return 0;}

ÇIKTIÇIKTI

Sifre : Sifre : adminadminsifre sifre yanlisSifre : yanlisSifre : rootrootsifre sifre

yanlisSifre : yanlisSifre : elma%xj4elma%xj4

sifre dogrusifre dogru

strcpy strcpy fonksiyonunun kullanımıfonksiyonunun kullanımı [Bir string diğerine kopyalama ][Bir string diğerine kopyalama ]

#include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h> int main()int main() { char str1[] = "Deneme"; { char str1[] = "Deneme"; char str2[15], str3[15]; char str2[15], str3[15]; int i; /* strcpy kullanarak kopyalama */ int i; /* strcpy kullanarak kopyalama */ strcpy(str2, str1); /* strcpy kullanmadan kopyalama */ strcpy(str2, str1); /* strcpy kullanmadan kopyalama */ for(i=0; str1[i]; i++) for(i=0; str1[i]; i++) str3[i] = str1[i]; str3[i] = str1[i]; str3[i] = '\0'; /* sonlandırıcı ekle */ /* sonuçlar ekrana */ str3[i] = '\0'; /* sonlandırıcı ekle */ /* sonuçlar ekrana */ printf("str1 : %s\n",str1); printf("str1 : %s\n",str1); printf("str2 : %s\n",str2); printf("str2 : %s\n",str2); printf("str3 : %s\n",str3); printf("str3 : %s\n",str3); return 0;} return 0;}

ÇIKTIÇIKTI

str1 : Denemestr1 : Deneme str2 : Denemestr2 : Deneme str3 : Deneme str3 : Deneme

strcat strcat fonksiyonunun kullanımıfonksiyonunun kullanımıBir katarı diğerine eklerBir katarı diğerine ekler

#include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h> int main()int main() { char mesaj[20] = "Selam "; /* 1. katar */ { char mesaj[20] = "Selam "; /* 1. katar */ char isim[10]; /* 2. katar */ char isim[10]; /* 2. katar */ printf("Adiniz ? : "); printf("Adiniz ? : "); scanf("%s",isim); /* ekle */ scanf("%s",isim); /* ekle */ strcat(mesaj, isim); strcat(mesaj, isim); printf("%s\n",mesaj); printf("%s\n",mesaj); return 0;} return 0;}

ÇIKTIÇIKTI

Adiniz ? : Adiniz ? : DeryaDerya Selam DeryaSelam Derya

strlen strlen fonksiyonunun kullanımıfonksiyonunun kullanımı [[Bir karakter dizisinin uzunluğunu bulurBir karakter dizisinin uzunluğunu bulur ] ]

#include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h> int main()int main() { char s[20]; { char s[20]; int k = 0; int k = 0; printf("Bir seyler yazin : "); printf("Bir seyler yazin : "); scanf("%s",s); /* sonlandırıcı karaktere kadar */ scanf("%s",s); /* sonlandırıcı karaktere kadar */

while( s[k] != '\0' ) k++; while( s[k] != '\0' ) k++; puts("Dizinin uzunlugu"); puts("Dizinin uzunlugu"); printf("strlen kullanarak = %d\n",strlen(s));printf("strlen kullanarak = %d\n",strlen(s)); printf("strlen kullanmadan = %d\n",k); printf("strlen kullanmadan = %d\n",k); return 0;} return 0;}

ÇIKTIÇIKTI

Bir seyler yazin : Bir seyler yazin : deneme stringideneme stringi Dizinin uzunluguDizinin uzunlugu strlen kullanarak = 14strlen kullanarak = 14 strlen kullanmadan = 14 strlen kullanmadan = 14

Isim sırlamaIsim sırlama [[Kabarcık Sıralama (Bubble Sort) Algoritması ile isimleri alfabetik sırayla listelerKabarcık Sıralama (Bubble Sort) Algoritması ile isimleri alfabetik sırayla listeler ] ]

#include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h> #define n 5int main()#define n 5int main() { char isim[n][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" }; { char isim[n][8] = { "Semra", "Mustafa", "Ceyhun", "Asli", "Leyla" }; char gecici[8]; char gecici[8]; int i,j,k; int i,j,k; puts("Once:\n------"); puts("Once:\n------"); for(i=0; i<n; i++) for(i=0; i<n; i++) printf("%s\n",isim[i]); /* sırala */ printf("%s\n",isim[i]); /* sırala */ for(k=0; k<n-1; k++) for(k=0; k<n-1; k++) for(j=0; j<n-1; j++) for(j=0; j<n-1; j++) if( strcmp(isim[j],isim[j+1]) > 0 ) /* isim[j]>isim[j+1] ? */ if( strcmp(isim[j],isim[j+1]) > 0 ) /* isim[j]>isim[j+1] ? */ { strcpy(gecici ,isim[j]); { strcpy(gecici ,isim[j]); strcpy(isim[j] ,isim[j+1]); strcpy(isim[j] ,isim[j+1]); strcpy(isim[j+1],gecici); } strcpy(isim[j+1],gecici); } puts("\nSonra:\n------"); puts("\nSonra:\n------"); for(i=0; i<n; i++) for(i=0; i<n; i++) printf("%s\n",isim[i]); printf("%s\n",isim[i]); return 0;} return 0;}

Once:Once: ------------ SemraSemra MustafaMustafa CeyhunCeyhun AsliAsli LeylaLeyla

Sonra:Sonra: ------------ AsliAsli CeyhunCeyhun LeylaLeyla MustafaMustafa SemraSemra

strlen dengi bir fonksiyon: struznstrlen dengi bir fonksiyon: struzn[[Bir katarın uzunluğunu bulan strlen dengi bir fonksiyonBir katarın uzunluğunu bulan strlen dengi bir fonksiyon ] ]

#include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h> int struzn(char *);int struzn(char *); int main()int main() { char *s; { char *s; printf("Bir katar girin: "); printf("Bir katar girin: "); gets(s); gets(s); printf("Uzunlugu (struzn) : %d\n",struzn(s)); printf("Uzunlugu (struzn) : %d\n",struzn(s)); printf("Uzunlugu (strlen) : %d\n",strlen(s)); return 0;}/* bir printf("Uzunlugu (strlen) : %d\n",strlen(s)); return 0;}/* bir

karakter dizisinin uzunluğunu hesaplar */karakter dizisinin uzunluğunu hesaplar */ int struzn(char *str){ int struzn(char *str){ int n = 0; int n = 0; while(str[n]) n++; while(str[n]) n++; return n;} return n;}

ÇIKTIÇIKTI

Bir katargirin:Bir katargirin:ProgramlamaProgramlama

Uzunlugu (struzn) : 11Uzunlugu (struzn) : 11

Uzunlugu (strlen) : 11Uzunlugu (strlen) : 11

strrev dengi bir fonksiyon: strcevstrrev dengi bir fonksiyon: strcev[: [: Bir katarın tersini veren bir fonksiyonBir katarın tersini veren bir fonksiyon */ ] */ ]

#include <stdio.h>#include <stdio.h> #include <string.h>#include <string.h> char *strcev(char *);char *strcev(char *); int main(){ int main(){ char s[50]; char s[50]; printf("Bir katar girin: "); printf("Bir katar girin: "); scanf("%s",s); scanf("%s",s); printf("Katar, s : %s\n",s); printf("Katar, s : %s\n",s); printf("Tersi, strcev(s) : %s\n",strcev(s)); printf("Tersi, strcev(s) : %s\n",strcev(s)); return 0;}/* str katarını ters-yüz eder */return 0;}/* str katarını ters-yüz eder */ char *strcev(char *str){char *strcev(char *str){ int i,n; int i,n; char gecici; n = strlen(str); char gecici; n = strlen(str); for(i=0; i<n/2; i++) { for(i=0; i<n/2; i++) { gecici = str[i]; gecici = str[i]; str[i] = str[n-i-1]; str[i] = str[n-i-1]; str[n-i-1] = gecici; } str[n-i-1] = gecici; } return str; /* geri dönüş değeri bir gösterici */} return str; /* geri dönüş değeri bir gösterici */}

ÇIKTIÇIKTI

Bir katar girin: Bir katar girin: ProgramlamaProgramlama Katar, s : ProgramlamaTersi, Katar, s : ProgramlamaTersi, strcev(s) : amalmargorPstrcev(s) : amalmargorP

Klavyeden enter tuşuna basılıncaya girilen bir ifadenin bir Klavyeden enter tuşuna basılıncaya girilen bir ifadenin bir değişkendedeğişkende

saklanmasını sağlayan bir program yazınız.saklanmasını sağlayan bir program yazınız.

#include <stdio.h>#include <stdio.h> #include <stdlib.h>#include <stdlib.h>

int main(int argc, char *argv[])int main(int argc, char *argv[]) {{ char cumle[1024],ch;char cumle[1024],ch; int s=0;int s=0; ch=getc(stdin);ch=getc(stdin); while (ch!='\n'){while (ch!='\n'){ cumle[s]=ch;cumle[s]=ch; s++;s++; ch=getc(stdin);ch=getc(stdin); }} cumle[s]='\0'; // girilen ifadenin sonuna karakter dizesi sonu işaretini cumle[s]='\0'; // girilen ifadenin sonuna karakter dizesi sonu işaretini

yerleştiriyoruz.//yerleştiriyoruz.//

system("PAUSE");system("PAUSE"); return 0;return 0; }} --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Klavyeden girilmiş bir ifadenin uzunluğunu strlen Klavyeden girilmiş bir ifadenin uzunluğunu strlen fonksiyonu kullanmadanfonksiyonu kullanmadanbulan programı yazınız.bulan programı yazınız.

#include <stdio.h>#include <stdio.h> #include <stdlib.h>#include <stdlib.h>

int main(int argc, char *argv[])int main(int argc, char *argv[]) {{ char cumle[1024];char cumle[1024]; int s=0;int s=0; gets(cumle);gets(cumle); while (cumle[s]!='\0')s++;while (cumle[s]!='\0')s++; printf("Uzunluk:%d\n",s);printf("Uzunluk:%d\n",s); // girilen ifadenin sonuna kadar harfler sayılır.karakter dizesi sonu // girilen ifadenin sonuna kadar harfler sayılır.karakter dizesi sonu

işaretini bulmaya çalışıyoruzişaretini bulmaya çalışıyoruz

system("PAUSE");system("PAUSE"); return 0;return 0; }}

Klavyeden istenilen uzunlukta veya enter tuşuna basılıncaya kadarKlavyeden istenilen uzunlukta veya enter tuşuna basılıncaya kadarifadelerin okunmasını sağlayan programı yazınız.ifadelerin okunmasını sağlayan programı yazınız.

#include <stdio.h>#include <stdio.h> #include <stdlib.h>#include <stdlib.h> #define SAY 15#define SAY 15 int main(int argc, char *argv[])int main(int argc, char *argv[]) {{ char kelime[SAY];char kelime[SAY]; int l;int l; l=0;l=0; while((kelime[l]=getc(stdin))!='\n' && l<SAY)while((kelime[l]=getc(stdin))!='\n' && l<SAY) l++;l++; if (l>=SAY) l=SAY-1;if (l>=SAY) l=SAY-1; kelime[l]='\0';kelime[l]='\0';

system("PAUSE");system("PAUSE"); return 0;return 0; }}

Girilen cümleyi oluşturan kelimelerin sadece ilk harflerini Girilen cümleyi oluşturan kelimelerin sadece ilk harflerini yazdıran program.yazdıran program.

1. c = sıradaki karakteri oku1. c = sıradaki karakteri oku 2. Eğer c boşluk ise 4. adıma git2. Eğer c boşluk ise 4. adıma git 3. Hiç karakter yazılmamış ise c'yi yaz.3. Hiç karakter yazılmamış ise c'yi yaz. 4. Eğer son karakter ise dur aksi halde bir 4. Eğer son karakter ise dur aksi halde bir

sonraki karakteri göster ve 1.adıma git.sonraki karakteri göster ve 1.adıma git. Yukarıdaki algoritmada çözümün en Yukarıdaki algoritmada çözümün en

önemli noktası herhangi bir kelimenin ilk önemli noktası herhangi bir kelimenin ilk karakara

#include <stdio.h>#include <stdio.h> #include <stdlib.h>#include <stdlib.h>

int main(int argc, char *argv[])int main(int argc, char *argv[]) {{ int i;int i; int yaz; /* 1/0 -> karakteri yaz/yazma */int yaz; /* 1/0 -> karakteri yaz/yazma */ char *s;char *s;

clrscr();clrscr(); gets(s);gets(s); yaz = 1;yaz = 1; for (i = 0; i<strlen(s); i++)for (i = 0; i<strlen(s); i++) if (s[i] == ' ')if (s[i] == ' ') yaz = 1;yaz = 1; elseelse if (yaz) {if (yaz) { printf("%c", s[i]);printf("%c", s[i]); yaz = 0;yaz = 0;

system("PAUSE");system("PAUSE"); return 0;return 0; }}

String tipi bir değişkenin değerini tamsayısal tipe dönüştüren işlevi yazınız.(atoi String tipi bir değişkenin değerini tamsayısal tipe dönüştüren işlevi yazınız.(atoi (stdlib.h))(stdlib.h))

Girdi : Tamsayısal stringGirdi : Tamsayısal stringÇıktı : Karşılık gelen sayıÇıktı : Karşılık gelen sayı

#include <stdio.h>#include <stdio.h> #include <stdlib.h>#include <stdlib.h> #include <string.h>#include <string.h>

int main(int argc, char *argv[])int main(int argc, char *argv[]) {{ int deger (char *);int deger (char *);

char *c;char *c; int i;int i;

c="93t54";c="93t54"; i=deger(c);i=deger(c); printf("%s dizi katarının sayısal karşılığı %d \n",c, i);printf("%s dizi katarının sayısal karşılığı %d \n",c, i); }} int deger( char *s)int deger( char *s) {{ int i,j;int i,j; int x; /*sayı */int x; /*sayı */ x = 0;x = 0; for (i = 0; i<strlen(s); i++) {for (i = 0; i<strlen(s); i++) { j = s[i] - '0';j = s[i] - '0'; x = x * 10 + j ;x = x * 10 + j ; }}

system("PAUSE");system("PAUSE"); return 0;return 0; }}

Bir dizgi içerisindeki bir karakterin bulunması. i harfini İ ile değiştiren Bir dizgi içerisindeki bir karakterin bulunması. i harfini İ ile değiştiren program.program.

#include <stdio.h>#include <stdio.h> #include <stdlib.h>#include <stdlib.h> #include <string.h>#include <string.h> int main(int argc, char *argv[])int main(int argc, char *argv[]) {{

char *s1, *s2, *s3;char *s1, *s2, *s3; int i;int i; clrscr();clrscr(); s1="ali zil çaldi";s1="ali zil çaldi"; strcpy(s2, s1);strcpy(s2, s1); for (i=0; i<strlen(s1); i++)for (i=0; i<strlen(s1); i++) if (s1[i] == 'i')if (s1[i] == 'i') s1[i] = 'İ';s1[i] = 'İ'; printf("%s\n",s1);printf("%s\n",s1);

system("PAUSE");system("PAUSE"); return 0;return 0; }}

Bir dizgi içerisindeki bir karakterin Bir dizgi içerisindeki bir karakterin bulunması. i harfini İ ile değiştiren program. bulunması. i harfini İ ile değiştiren program. #include <string.h>#include <string.h> #include <stdio.h>#include <stdio.h> int main()int main() {{ char *s1, *s2, *s3;char *s1, *s2, *s3; int i;int i; clrscr();clrscr(); s1="ali zil çaldi";s1="ali zil çaldi"; strcpy(s2, s1);strcpy(s2, s1); for (i=0; i<strlen(s1); i++)for (i=0; i<strlen(s1); i++) if (s1[i] == 'i')if (s1[i] == 'i') s1[i] = 'İ';s1[i] = 'İ'; printf("%s\n",s1); printf("%s\n",s1);

BİZİ DİNLEDİĞİNİZ İÇİN BİZİ DİNLEDİĞİNİZ İÇİN

TEŞEKKÜR EDERİZ...TEŞEKKÜR EDERİZ...

DİDEM ÜZMEZDİDEM ÜZMEZ

DERYA EDEBALİDERYA EDEBALİ