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 />

char *strcat(char *s1, const char *s2);<br />

strcat işlevi eklemenin yapılacağı ve başlangıç adresi s1 birinci parametre değişkeninde<br />

tutulan yazının sonundaki sonlandırıcı karakteri ezerek, başlangıç adresi ikinci parametre<br />

değişkeninde tutulan yazıyı birinci yazının sonuna (sonlandırıcı karakter de dahil olmak<br />

üzere) ekler. Yani işlem sonunda s1 adresindeki yazının uzunluğu s2 adresindeki yazının<br />

uzunluğu kadar artar.<br />

İşlevin geri dönüş değeri, sonuna eklemenin yapıldığı yazının başlangıç adresi, yani s1<br />

adresidir.<br />

#include <br />

#include <br />

int main()<br />

{<br />

char s1[100], s2[100];<br />

printf("sonuna ekleme yapılacak yazıyı girin : ");<br />

gets(s1);<br />

printf("girdiğiniz yazının uzunluğu = %d\n", strlen(s1));<br />

printf("eklemek istediğiniz yazıyı girin : ");<br />

gets(s2);<br />

printf("eklenecek yazının uzunluğu = %d\n", strlen(s2));<br />

strcat(s1, s2);<br />

printf("ekleme yapıldıktan sonra 1. yazı : ");<br />

puts(s1);<br />

printf("ekleme yapıldıktan sonra yazının uzunluğu : %d\n", strlen(s1))<br />

}<br />

return 0;<br />

strcat işlevi aşağıdaki gibi tanımlanabilir:<br />

char *mystrcat(char *s1, const char *s2)<br />

{<br />

char *temp = s1;<br />

while (*s1 != '\0')<br />

++s1;<br />

while ((*s1++ == *s2++) != '\0') /* strcpy(s1, s2); */<br />

;<br />

}<br />

return temp;<br />

Bir yazının sonuna başka bir yazıyı eklemek, sona eklenecek yazıyı diğer yazının<br />

sonundaki sonlandırıcı karakterin bulunduğu yere kopyalamak anlamına gelir, değil mi?<br />

Dolayısıyla strcat işlevi aşağıdaki biçimlerde de tanımlanabilir.<br />

char *mystrcat(char *s1, const char *s2)<br />

{<br />

strcpy(s1 + strlen(s1), S2);<br />

return s1;<br />

}<br />

char *mystrcat(char *s1, const char *s2)<br />

{<br />

strcpy(strchr(s1, '\0'), s2);<br />

return s1;<br />

}<br />

271

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

Saved successfully!

Ooh no, something went wrong!