Sponsor

Diziler ve Kelimeler

Sponsor
Sponsor

C++ dilinde diziler konusundan bahsedeceğim yine. Çünkü diziler gerçekten bir çok dilde temel oluşturmakta. Bu sebeple bu yazıda C++ dilince diziler ve kelime işlemleri yapan bir uygulama paylaşacağım.

Uygulamada kullanıcıdan alınan kelime bir diziye atılıyor. Sonrasında ise kendi yazdığımız bir fonksiyon ile bu dizinin uzunluğu bulduruluyor. Başka bir fonksiyon ile kullanıcıdan alınana cümlede ki boşluk karakterlerinin indisleri tespit ediliyor. Sonrasın da ise cümlemizi iki farklı tersten yazılım şekli ile ekrana yazdırıyoruz.

Uygulama hakkında detaylı bilgi ve indirme linki aşağıda mevcuttur.

Uygulama Bilgileri;

Dil: C++

Amacı: C++ ta dizi işlemleri, string işleme, fonksiyon yapısı, döngüler ile string yazdırma

Uygulamaya ait kod;

//19.02.2011 Diziler ve Stringler de işlemler

#include <iostream>
#include <stdlib.h>
#include <conio.h>
#define myCharLen 100//Dizi boyutu

int arrayLen(char word[]);//Dizi uzunluğunu bulan fonksiyon
void spaceStr(char word[],int direction);//Dizide ki boşlukları bulan fonksiyon
void writeStr(char word[],int first,int last,int direction);//Karakter aralığını yazan fonksiyon
void  myMenu(void);

int main(void)
{
    myMenu();

    char myWord[myCharLen];

    printf("Kelime giriniz: ");
    gets(myWord);//gets ile karakter dizisi dizi içerisine aktarıldı

    printf("\nGirilen metin uzunlugu = %d\n",arrayLen(myWord));

    printf("\nGirilen metnin tersi = ");
    spaceStr(myWord,0);

    printf("\nGirilen metnin tam tersi = ");
    spaceStr(myWord,1);    

    printf("\n\n");
    myMenu();
    system("pause");
}

void spaceStr(char word[],int direction)
{
     int i,freeChar;
     int arrayLength = arrayLen(word)-1; //Diziler 0 sıfırdan başlıyor. -1 in amacı bu
     int preChar = arrayLength;//Önce ki karakter ilk durumda dizinin son indisinde

     if(direction==0)
     {
         for (i=arrayLength;i>=0;i--)//Tersten yazdırıyoruz
         {
             if(word[i] == 32)
             {
                //printf("%d. karakter bosluk",i);
                freeChar=i;//Boşluk bulundu ve boşKarakter değişkenine indis değeri atıldı
                writeStr(word,freeChar,preChar,direction);//fonksiyonumuz çağrıldı
                preChar=freeChar;//az önce bulunan boşlukKarakteri indisi şimdi önceki karakter oldu
             }
         }
         writeStr(word,0,preChar,direction);//cümlenin kalan son kısmını yazdırmak için
     }
     else if(direction==1)
     {
          int preChar = 0;//cümleyi baştan okutuyoruz.İlk karakterimiz sıfırıncı indiste
          for(i=0;i<=arrayLength;i++)
          {
              if(word[i] == 32)
              {
                freeChar=i;
                writeStr(word,preChar,freeChar,direction);
                preChar=freeChar;
              }
          }
         writeStr(word,preChar,arrayLength,direction);//en son kelimeyi yazdırmak için
     }
     else
         printf("An Error Funtion: spaceStr--> Direction");
}

void writeStr(char word[],int first,int last,int direction)
{//direction --> 0:düz || 1:ters
     int i;
     if(direction == 0)
     {
         for(i=first;i<=last;i++)
             printf("%c",word[i]);
         printf(" ");
     }
     else if(direction == 1)
     {
         for(i=last;i>=first;i--)
             printf("%c",word[i]);
         printf(" ");
     }
     else
         printf("An Error Funtion: WriteStr--> Direction");
}

int arrayLen(char word[])
{
    int i = 0;
    while (word[i] != '\0')//word dizisinde \0 görene kadar oku
          i++;
    return i;
}

void myMenu(void)
{
    printf("\t_________________________________________________________\n\n");
 printf("\t                     blog.selcukoksuz.com                \n");
 printf("                  Programlam 2 Dersi Dizilerde Islemler   \n\n");
    printf("\t_________________________________________________________\n\n");
}

/*Bu kodlama B.Selçuk ÖKSÜZ tarafından hazırlanmıştır.
Kodlar hakkında yada programlama hakkında düşünce ve görüşlerinizi

http://blog.selcukoksuz.com adresi altında iletebilirsiniz.

Facebook sayfası:

*/

Uygulama Dosyası İndirme Linki:

Diziler ve Kelime İşleme C++ dosyası indir.

Sponsor
B.Selçuk ÖKSÜZ: Bilgisayarla yaşamayı bir tarz olarak benimsemiş, teknoloji ile tamamen içli dışlı bir; web tasarımcı, yazılımcı, donanımcı, blog yazarı ve bilgisayar mühendisidir.
Yorumunuz
Sponsor