![Page 1: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/1.jpg)
3. Hafta – Karakter Dizileri
Dr. Öğr. Üyesi Nesibe YALÇIN
https://nesibeyalcin.wordpress.com/bsm104/
BARTIN ÜNİVERSİTESİ
MÜHENDİSLİK, MİMARLIK VE TASARIM FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
![Page 2: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/2.jpg)
2
Karakter Dizileri
― char tipli karakterlerden oluşan ve en sonuna ‘\0’ (boş, NULL) karakteri eklenmiş dizilerdir.
― String, katar, dizge, dizgi de denir.
― Karakterler ‘a’, ‘?’, ‘1’, ‘t’, ‘+’ şeklinde tek tırnak içerisinde yazılır, dizgeler “Bartın” şeklinde çift tırnak içerisinde yazılırlar.
“Bartın” = {‘B’, ‘a’, ‘r’, ‘t’, ‘ı’, ‘n’, ‘\0’}
![Page 3: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/3.jpg)
3
Karakter Dizileri
― char a[]= “C dili”; ― char a[]= {‘C’, ‘ ’, ‘d, ‘i’, ‘l’, ‘i’, ‘\0’};
Stringlerde doğrudan kullanılmayan karakterler: • Çift tırnak karakterini ekrana yaz: \” • Ters bölü karakterini ekrana yaz: \\
char c[30]="Alt satira gecmek icin: \\n";
![Page 4: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/4.jpg)
4
Değer Atama
char a[] =“C dili”; Derleyici, karakter sayısına göre otomatik olarak dizi boyutunu ayarlıyor.
0 1 2 3 4 5 6
C d i l i \0
Adres Veri
0x00
0x01 67 ‘C’
0x02 32 ‘ ’
0x03 100 ‘d’
0x04 105 ‘i’
0x05 108 ‘l’
0x06 105 ‘i’
0x07 0 ‘\0’
0x08
0x09
0x0A
0x0B
De
rley
ici
![Page 5: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/5.jpg)
5
Değer Atama
char a[]={'C',' ','d','i','l','i','\0'}; char x[] =“programlama”; char x[]; // hatalı char x[25]; x[]=“programlama”; //hatalı x=“programlama”; //hatalı
![Page 6: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/6.jpg)
• Çok boyutlu dizilerde;
• char isim[5][8] = {“Ayse”, “Hamdi”, “Burak”, “Leyla”, “Ahmet”};
• char sehir[][10] = {“Ankara”, “Sakarya”, “Yozgat”, “Konya”};
6
Değer Atama
![Page 7: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/7.jpg)
7
Karakter Dizileri
#include <stdio.h>
int main() {
char a[]="C dili";
int i=0;
while(a[i]!='\0'){
printf("%c",a[i]);
i++; }
}
#include <stdio.h>
int main() {
char a[]="C dili";
for(int i=0; i<6;i++)
printf("%c",a[i]);
}
#include <stdio.h>
int main() {
char a[]="C dili";
printf("%s",a);
// puts(a);
}
![Page 8: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/8.jpg)
8
Karakter Dizileri
#include <stdio.h>
#include <conio.h>
int main() {
char a[]="C dili";
printf("%s\n",a);
a[3]='\0';
printf("%s",a);
getch (); }
![Page 9: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/9.jpg)
9
Karakter Dizileri
#include <stdio.h>
#include <conio.h>
int main() {
char a[]="C dili";
printf("%s\n",a);
a[6]=‘m';
printf("%s",a);
getch (); }
![Page 10: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/10.jpg)
• puts(char str []): Ekrana stringi ekrana yazdırdıktan sonra imleci bir sonraki satıra geçirir.
#include <stdio.h>
int main() {
char bolum[10]="bilgisayar";
printf("%s\n",bolum); // puts(bolum);
}
10
String Fonksiyonları
![Page 11: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/11.jpg)
• gets(char str[]): Girdi olarak string almak için kullanılır, stringin sonuna ‘\0’, null karakterini otomatik olarak ekler.
#include <stdio.h>
int main() {
char bolum[10];
scanf("%s",bolum); // gets(bolum);
}
11
String Fonksiyonları
![Page 12: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/12.jpg)
• string.h kütüphanesinde yer alanlar:
• strlen(char str[]): Bir string (dizge) içindeki karakter sayısını bulmak için kullanılır.
int adet=0;
while(str[adet]!=‘\0’)
adet++;
ya da
adet=strlen(str);
12
String Fonksiyonları
![Page 13: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/13.jpg)
• strcpy(char str1[],char str2[]): str2 stringini str1 stringine kopyalama işlemini yapar.
char ad[10];
strcpy(ad,"elanur");
• strncpy(char str1[],char str2[],int n): str2 stringindeki ilk n adet karakteri str1 stringine kopyalama işlemini yapar.
13
String Fonksiyonları
![Page 14: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/14.jpg)
• strcat(char str1[],char str2[]): str1 stringinin sonuna str2 stringinin eklenmesini sağlar.
char str1[10]= “sınıf”;
char str2[10]= “Z04”;
strcat(str1, str2);
str1’ in yeni hali “sınıf Z04”
• strncat(char str1[],char str2[],int n): str1 stringinin sonuna str2 stringinin ilk n karakterinin eklenmesini sağlar.
14
String Fonksiyonları
![Page 15: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/15.jpg)
• strcmp(char str1[],char str2[]): str1 ve str2 stringlerini karşılaştırır: Eşit ise 0, str1 stringi sözlükte daha önce geliyorsa -1, str2 stringi daha önce geliyorsa 1 değerini döndürür. – strcmp(“Ankara”, “Ankara”) 0 – strcmp(“Ankara”, “Antalya”) -1 – strcmp(“Antalya”, “Ankara”) 1
• strncmp(char str1[],char str2[],int n): str1 ve str2
stringlerinin ilk n karakterlerinin karşılaştırılmasını sağlar.
15
String Fonksiyonları
![Page 16: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/16.jpg)
• strstr(char str1[],char str2[]): str1 stringi içinde str2 stringini arar, ilk karşılaştığı yeri verir.
16
String Fonksiyonları
#include <stdio.h>
#include <conio.h> #include <string.h>
int main() {
char girdi[20];
puts("Bir string girin: ");
gets(girdi);
printf("%s\n",strstr(girdi,"al"));
getch (); }
![Page 17: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/17.jpg)
• strchr(char str1[],char x): str1 stringi içinde x karakterini arar, ilk karşılaştığı yeri verir.
17
String Fonksiyonları
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main() {
char girdi[20];
puts("Bir string girin: ");
gets(girdi);
printf("%s\n",strchr(girdi,'a'));
getch ();
}
![Page 18: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/18.jpg)
• strrev(char str1[]): str1 stringini ters çevirir.
• strlwr(char str1 []): str1 stringindeki büyük harfleri küçük harflere çevirir.
• strupr(char str1 []): str1 stringindeki küçük harfleri büyük harflere çevirir.
18
String Fonksiyonları
![Page 19: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/19.jpg)
19
String Fonksiyonları
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main() {
char ad[]="NeSiBe YaLCiN";
strupr(ad);
printf("%s\n",ad);
strlwr(ad);
printf("%s",ad);
getch (); }
![Page 20: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/20.jpg)
• ctype.h kütüphanesinde yer alanlar:
• isalnum(char x): Girilen x karakterin alfabetik ya da nümerik olup olmadığını sorgular.
• isalpha(char x): x bir harf ise sıfırdan farklı, diğer durumlarda sıfır değerini döndürür.
• isdigit(char x): x bir sayı ise sıfırdan farklı, diğer durumlarda sıfır değerini döndürür.
20
String Fonksiyonları
![Page 21: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/21.jpg)
21
String Fonksiyonları
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int main() {
char x;
puts("Bir karakter girin: ");
scanf("%c",&x);
if(isalnum(x))
printf("Alfabetik/Numerik");
else
printf("Alfabetik/Numerik degil");
getch (); }
![Page 22: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/22.jpg)
• ctype.h kütüphanesinde yer alanlar:
• isspace(char x): x boşluk, yeni satır veya tab karakteri gibi bir karakterse sıfırdan farklı, diğer durumlarda sıfır değerini döndürür.
• isupper(char x): x büyük bir harf ise sıfırdan farklı, diğer durumlarda sıfır değerini döndürür.
• islower(char x): x küçük bir harf ise sıfırdan farklı, diğer durumlarda sıfır değerini döndürür.
22
String Fonksiyonları
![Page 23: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/23.jpg)
• toupper(char x): x’ in değerinin büyük harf karşılığını verir.
• tolower(char x): x’ in değerinin küçük harf karşılığını verir.
• sizeof(…. a): Donanım sisteminin a değişkenine ya da veri türüne ayırdığı bellek büyüklüğünü verir.
23
String Fonksiyonları
![Page 24: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/24.jpg)
24
String Fonksiyonları
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int main() {
char x;
puts("Bir karakter girin: ");
scanf("%c",&x);
printf("%c",toupper(x));
printf("%c",tolower(x));
getch (); }
![Page 25: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/25.jpg)
25
Uygulama-1
// #include <string.h>
#include <stdio.h>
#include <conio.h>
int main() {
char str[20]="Muhendislik";
//for(int i=0;i<strlen(str);i++)
for(int i=0;str[i]!='\0';i++){
for(int j=0;j<i+1;j++)
printf("%c",str[j]);
printf("\n"); }
getch(); }
![Page 26: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/26.jpg)
26
Uygulama-2
#include <stdio.h>
#include <conio.h>
int main() {
char girdi[20];
int i=0,sayac=0;
puts("Bir string girin: ");
gets(girdi);
while(girdi[i] != '\0'){
if( girdi[i] == 'a')
sayac++;
i++; }
printf("'a' karakteri sayisi = %d\n",sayac);
printf("Toplam karakteri sayisi = %d\n",i);
printf("Ayrilan bellek buyuklugu %d byte",sizeof(girdi));
getch (); }
![Page 27: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/27.jpg)
27
Uygulama-3
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main() {
char girdi[20];
int sayac=0;
puts("Bir string girin: ");
do{
gets(girdi);
sayac++;
}while( strcmp(girdi, "Ankara*06")!=0);
printf("%d seferde bildiniz\n",sayac);
getch (); }
![Page 28: 3. Hafta Karakter Dizileri2 Karakter Dizileri ―char tipli karakterlerden oluşan ve en sonuna Z\0 (boş, NULL) karakteri eklenmiş dizilerdir. ―String, katar, dizge, dizgi de denir](https://reader030.vdocuments.pub/reader030/viewer/2022011823/5ecf083b29f45b29e55f8a80/html5/thumbnails/28.jpg)
• Kullanıcı tarafından girilen bir karakter dizisi içindeki boşluk karakterini çıkaran programı C dilinde yazınız.
• strstr fonksiyonu ile aynı görevi yapan void str_arama(char a[],char b[]) isimli kendi fonksiyonunu yazınız.
• Kullanıcı tarafından girilen bir stringin Palindrom olup olmadığını bulan fonksiyonu yazınız. 2141412, ata, kazak, Ey Edip Adanada pide ye …
28
Uygulama Örnekleri