Karakter Dizileri
admin
15.03.2012
16:31:51
C dilinde, karakter dizileri oldukça sık kullanılır. Sadece karakter dizilerine özel olarak, karakter dizilerinin sonuna sonlandırcı karakter olarak adlandırılan bir simge eklenir. Sonlandırcı karakter, işlemlerin hızlı ve etkin bir biçimde yapılabilmesine olanak sağlar. Sonlandırıcı karakter:
dizinin bittiği yeri gösterir,
ASCII tablosunun sıfır numaralı (’\0’) karakteridir.
C dilinde, karakter dizileri oldukça sık kullanılır. Sadece karakter dizilerine özel olarak, karakter dizilerinin sonuna sonlandırcı karakter olarak adlandırılan bir simge eklenir. Sonlandırcı karakter, işlemlerin hızlı ve etkin bir biçimde yapılabilmesine olanak sağlar. Sonlandırıcı karakter:
- dizinin bittiği yeri gösterir,
- ASCII tablosunun sıfır numaralı (’\0’) karakteridir.
Karakter dizilerine iki şekilde başlangıç değeri verilebilir.
char s[7] = {’d’,’e’,’n’,’e’,’m’,’e’,’\0’}; ya da
char s[7] = "deneme";
Birinci tanımlamada sonlandırıcı karakter programcı tarafından konmalıdır. Ikinci tanımlamada ise buna gerek yoktur. Çünkü, sonlandırıcı karakter bu atamayla, derleyici tarafından eklenir.
NOT
char s[7] = "deneme";
ataması geçeli olmasına rağmen, aşağıdaki atama geçersizdir:
char s[7];
char s = "deneme";
|
Karakter dizileri gets() fonksiyonu ile klavyeden okunabilir.
char ad[20];
...
gets(ad);
1.programda bir karakter dizisinin uzunluğunun nasıl bulunduğu, diğer programda ise bir karakter dizisinin tersyüz edilişi gösterilmiştir. İnceleyiniz.
#include <stdio.h>
int main(void)
{ char s[40]; int k = 0;
/* diziyi oku */
printf("Bir seyler yazin : ");
gets(s);
/* sonlandırıcı karaktere kadar karakterleri say */
while( s[k]!=’\0’ )
k++;
printf("Dizinin uzunlugu : %d\n",k);
return 0;
}
Birseyler yazin : Gazintep Universitesi
Dizinin uzunlugu : 21 -----------------------------------------------------------
#include <stdio.h>
int main(void)
{ char s[40], gecici; int i, n;
/* diziyi oku */
printf("Bir seyler yazin : ");
gets(s);
/* sonlandırıcı karaktere kadar */
for(n=0; s[n] != ’\0’; n++)
;
for(i=0; i<n/2; i++){
gecici = s[n-i-1];
s[n-i-1] = s[i];
s[i] = gecici;
}
printf("Tersi : %s\n",s);
return 0; } Bir seyler yazin : Deneme
Tersi : emeneD