16 Aralık 2015 Çarşamba

C DİLİ KONU 12

BUYUK VE KUCUK HARFLER

BUY-KUC.C:
================================================================
#include <STDIO.H>
#include <ctype.h>   /* Not: Derleyiciniz bunu gerektirmeyebilir */

main()
{
FILE *fp;
char satir[80], kutukismi[24];
char *c;

   printf("Kutuk ismini girin -> ");
   scanf("%s",kutukismi);
   fp = fopen(kutukismi,"r");

   do {
      c = fgets(satir,80,fp);   /* bir satir oku */
      if (c != NULL) {
         karistir_butun_karakterleri(satir);
      }
   } while (c != NULL);

   fclose(fp);
}

karistir_butun_karakterleri(satir)

/* Bu fonksiyon butun buyuk harfleri kucuge, butun kucukleri
de buyuge cevirir. Diger butun karakterleri etkilemez. */

char satir[];
{
int index;

   for (index = 0;satir[index] != 0;index++) {
      if (isupper(satir[index]))     /* buyuk harfse,1 doner */
         satir[index] = tolower(satir[index]);
      else {
         if (islower(satir[index]))  /* kucuk harfse,1 doner */
            satir[index] = toupper(satir[index]);
      }
   }
   printf("%s",satir);
}
================================================================

Bu basit programdaki yeni fonksiyonlar sunlardir:

isupper();            Karakter buyuk harfmidir?
islower();            Karakter kucuk harfmidir?
toupper();            Karakteri buyuk harf yap.
tolower();            Karakteri kucuk harf yap.


ilk fonksiyon, sayet parametresi olarak gecirilen deger, buyuk harf ise
('A'-'Z'), 1 degerini dondurur, sayet baska bir karakter ise, 0 degeri doner.

ikincisi, sayet parametresi kucuk harf ise, 1 degerini dondurur.

3uncu ve son fonksiyonlar ise, parametre olarak gecirilen karakteri buyuk
yada kucuk harfe degistirirler.

KARAKTERLERIN SINIFLANDIRILMASI

KARKLAS.C:
================================================================
#include <stdio.h>
#include <ctype.h>  /* Derleyiciniz bunu gerektirmeyebilir */

main()
{
FILE *fp;
char satir[80], kutukismi[24];
char *c;

   printf("Kutukismi -> ");
   scanf("%s",kutukismi);
   fp = fopen(kutukismi,"r");

   do {
      c = fgets(satir,80,fp);   /* bir satir oku */
      if (c != NULL) {
         veriyi_say(satir);
      }
   } while (c != NULL);

   fclose(fp);
}

satiri_say(satir)
char satir[];
{
int beyazlar, kars, rakamlar;
int index;

   beyazlar = kars = rakamlar = 0;

   for (index = 0;satir[index] != 0;index++) {
      if (isalpha(satir[index]))   /* 1 eger satir[] alfabetik ise   */
          kars++;
      if (isdigit(satir[index]))   /* 1 eger satir[] rakam ise     */
          rakamlar++;
      if (isspace(satir[index]))   /* 1 eger satir[] bosluk ise tab, */
          beyazlar++;               /*           yada yeni satir ise */
   }   /* sayan dongunun sonu */

   printf("%3d%3d%3d %s",beyazlar,kars,rakamlar,satir);
}
================================================================

Bircok yerde, \n yi, yeni bir satiri belirtmek icin kullandik, fakat cok
kullanilan baska kontrol karakterleri de vardir. Bu sekilde tanimlidirlar:

         \n        Yeni satir
   \t        Tab
   \b        Bir hane geri
   \"        Cift tirnak
   \\        Ters bolu
   \0        NULL (sifir)

Gordugunuz program, bir karakterin tipini belirleyen fonksiyonlar
kullanir. Kullandigi 3 fonksiyon sunlardir:

 isalpha();        Karakter alfabetik mi?
 isdigit();        Karakter bir rakam mi?
 isspace();        Karakter \n , \t yada bosluk mu?

Program yeterince basit, bu nedenle daha fazla detaylara girmiyorum..
Bu yeni fonksiyonlarin kullanimi da, ayni "isupper" yada "toupper"
fonksiyonlari gibidir.

<EOF>

Hiç yorum yok:

Yorum Gönder