Diziler ve Kelimeler

20 Şubat 2011 by B.Selçuk ÖKSÜZ
Leave a reply »
WP Greet Box icon
Merhaba! Selcukoksuz.com adresine hoş geldiniz. Eğer yeni iseniz ve içeriğimizi takip etmek isterseniz RSS Abonesi Olabilirsiniz.
Mailinize onay mesajı gönderilecektir. Cevaplamayı unutmayınız.

C++ dilinde konusundan bahsedeceğim yine. Çünkü gerçekten bir çok dilde temel oluşturmakta. Bu sebeple bu yazıda C++ dilince 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  hakkında düşünce ve görüşlerinizi

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

Facebook sayfası:
http://facebook.com/TurkiyeninMuhendisleri
*/

Uygulama Dosyası İndirme Linki:

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

Yazar Hakkında

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.
B.Selçuk ÖKSÜZ
B.Selçuk ÖKSÜZ kullanıcısının tüm yazıları.

Arama Sorguları

  • bir metin içinde bir kelimenin kaç kez (63)
Advertisement

Bu Yazıyı Beğendiniz Mi?

1

Bir Cevap Yazın

Sizin Yorumunuz Nedir?

%d blogcu bunu beğendi:
Gizlilik Hakları