08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Bu dizi içinde uzunluğu en fazla 19 karakter olabilecek ARRAY_SIZE sayıda isim<br />

tutulabilir, değil mi?<br />

for (k = 0; k < ARRAY_SIZE; ++k)<br />

strcpy(names[k], name_array[k]);<br />

döngü deyimiyle name_array isimli bir gösterici dizisinin elemanlarının gösterdiği isimler,<br />

iki boyutlu names dizisinin elemanı olan char türden dizilere standart strcpy işleviyle<br />

kopyalanıyor. Aşağıdaki döngü deyimiyle her bir isim ekrana yazdırılıyor:<br />

for (k = 0; k < ARRAY_SIZE; ++k)<br />

printf("(%s) ", names[k]);<br />

Aşağıdaki döngü deyimi ile standart olmayan strrev isimli işleve yapılan çağrılarla, iki<br />

boyutlu dizi içinde tutulan isimlerin hepsi ters çevriliyor:<br />

for (k = 0; k < ARRAY_SIZE; ++k)<br />

strrev(names[k]);<br />

char Türden İki Boyutlu Dizilere İlkdeğer Verilmesi<br />

char türden bir diziye çift tırnak içinde yer alan karakterlerle ilkdeğer verilebileceğine<br />

göre iki boyutlu bir dizinin elemanları olan char türden tek boyutlu dizinin elemanlarına<br />

da benzer şekilde ilkdeğer verilebilir:<br />

char names[5][10] = {"Ali", "Veli", "Hasan", "Tuncay", "Deniz"};<br />

Yukarıda, names isimli iki boyutlu dizinin elemanı olan 10 elemanlı char türden dizilere,<br />

çift tırnak içinde yer alan yazılarla ilkdeğer veriliyor.<br />

Şimdi de iki boyutlu char türden bir dizi üzerinde işlem yapacak bazı işlevler<br />

tanımlayalım:<br />

#include <br />

#include <br />

#define ARRAY_SIZE 20<br />

void swap_str(char *p1, char *p2)<br />

{<br />

char temp[20];<br />

strcpy(temp, p1);<br />

strcpy(p1, p2);<br />

strcpy(p2, temp);<br />

}<br />

void sort_names(char ptr[][20], int size)<br />

{<br />

int i, k;<br />

}<br />

for (i = 0; i < size - 1; ++i)<br />

for (k = 0; k < size - 1 - i; ++k)<br />

if (strcmp(ptr[k], ptr[k + 1]) > 0)<br />

swap_str(ptr[k], ptr[k + 1]);<br />

void display_names(const char ptr[][20], int size)<br />

{<br />

int i;<br />

for (i = 0; i < size; ++i)<br />

319

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!