Katar Kıyaslama
/*************CEYHUN************
**************CANİKLİ***********
*************ISTANBUL***********
***********UNIVERSITESI********/
#include
#include
#include
#include
#include

#define HATA {printf("Hatali deger girdiniz\n");}

int KatarlariKiyasla(const char *,const char *); //Fonksiyon prototipi
void KucukHarfeCevir (char *); //Fonksiyon prototipi
void KatariSifrele (char *); //Fonksiyon prototipi
void KatariTerstenYazdir (char *); //Fonksiyon prototipi
void KelimeSiralamasiniCevir(char *); //Fonksiyon prototipi
void GirdileriAl(void); //Fonksiyon prototipi
void GirdiAl(void); //Fonksiyon prototipi

char dizi1[100]={NULL},dizi2[100]={NULL};

int main()
{
int secim,karakterHatasi=-1,cikis = 1;

do{

printf("\n\t\t MENU\t\n\n\t1 Katar(string) kiyaslamak\n\n"
"\t2 Katari kucuk harfe cevirmek\n\n"
"\t3 Katari sifrelemek\n\n"
"\t4 Katari tersten yazdirmak icin\n\n"
"\t5 Katar icindeki kelime siralamasini tersine cevirmek\n\n"
"\t6 Cikmak icin\n\n");

do{

printf(" Lutfen seciminizi giriniz\n >...");
flushall(); //Fonksiyon tamponunu temizlemek icin
scanf("%d",&secim);

switch(secim){

case 1:
GirdileriAl(); //sadece ilk duruma ozel girdi al fonksiyonu
cikis=2; //
break;
case 2:
GirdiAl(); //Genel girdilerin alındıgı fonksiyon
KucukHarfeCevir(dizi1);
cikis=2;
break;

case 3:
GirdiAl();
KatariSifrele (dizi1);
cikis=2;
break;

case 4:
GirdiAl();
KatariTerstenYazdir(dizi1);
cikis=2;
break;

case 5:
GirdiAl();
KelimeSiralamasiniCevir(dizi1);
cikis=2;
break;

case 6:
getch();
exit(0);
default:
printf("Hatali deger girdiniz\n");
cikis=2;
}
secim=0;

}while(cikis == 1);

printf("\nBaska bir islem yapmak icin bir tusa basin\n");
getch();
system("cls");

}while(1);

return 0;
}
//Fonksiyon tanimlamasi
void GirdileriAl(void)
{
int sonuc;

printf("\nKiyaslanacak metinlerden ilkini girin\n");
flushall();
gets(dizi1);

printf("\nKiyaslanacak metinlerden ikincisini girin\n");
flushall();
gets(dizi2);

sonuc = KatarlariKiyasla(dizi1,dizi2);
if(sonuc == 1)
printf("\nBirinci katar sozlukte daha ondedir\n");
else if(sonuc == 0)
printf("\nIkinci katar sozlukte daha ondedir\n");
else if(sonuc == -1)
printf("\nKatarlar sozlukte ayni yerdeler\n");
}

//Fonksiyon tanimlamasi
int KatarlariKiyasla(const char *Ptr3,const char *Ptr4)
{
char geciciDizi1[100]={NULL},geciciDizi2[100]={NULL};

while(*Ptr3 != '\0' && *Ptr4 != '\0'){

if(toupper(*Ptr3) < toupper(*Ptr4)){
return 1;
}
else if(toupper(*Ptr3) >toupper(*Ptr4)){
return 0;
}

Ptr3++;
Ptr4++;
}
if(strlen(dizi1) < strlen(dizi2))
return 1;
else if(strlen(dizi1) > strlen(dizi2))
return 0;
else
return -1;
}

//Fonksiyon tanimlamasi
void GirdiAl(void)
{

printf("\nKatarimizi girin lutfen\n");
flushall();
gets(dizi1);
}

//Fonksiyon tanimlamasi
void KucukHarfeCevir (char *Ptr)
{
while(*Ptr != '\0'){
*Ptr = tolower(*Ptr);
Ptr++;
}
printf("\n%s\n",dizi1);
}
//Fonksiyon tanimlamasi
void KatariTerstenYazdir (char *ptr)
{
int boyut,i,temp;

boyut = strlen(dizi1);

for(i = 0;i <= boyut/2-1;i++){
temp = *(ptr + i);
*(ptr +i) = *(ptr+boyut-1-i);
*(ptr+boyut-1-i) = temp;
}
printf("%s\n",dizi1);
}

//Fonksiyon tanimlamasi
void KatariSifrele (char *ptr)
{
int boyut,sayici;

boyut = strlen(dizi1);

for(sayici =0 ;sayici <= boyut-1;sayici++){
if(*(ptr+sayici) == 90 || *(ptr+sayici) == 89 || *(ptr+sayici) == 122 || *(ptr+sayici) == 121)
*(ptr+sayici) = *(ptr+sayici)+2-26;
else if(*(ptr+sayici) == 57 || *(ptr+sayici) == 56)
*(ptr+sayici) = *(ptr+sayici)+2-10;
else if(*(ptr+sayici) == 32)
;
else
*(ptr+sayici) += 2;
}
printf("%s\n",dizi1);
}

//fonksiyon tanimlamasi
void KelimeSiralamasiniCevir(char *ptr)
{
int i = 0,j,temp,cikis,sayici,
kelimeSayisi = 1,boyut;

boyut = strlen(dizi1);

for(sayici =0 ;sayici <= boyut-1;sayici++)
if(*(ptr + sayici) == 32)
kelimeSayisi++;

for(cikis = 1;cikis <= kelimeSayisi - 1;){

while(*(ptr + i) != 32)
i++;

for(j = 0;j <= i/2 -1 ;j++){
temp = *(ptr + j);
*(ptr +j) = *(ptr+i-1-j);
*(ptr+i-1-j) = temp;
}

cikis++;
ptr += i+1;
i=0;
}

while(*(ptr + i) != '\0')
i++;

for(j = 0;j <= i/2 -1 ;j++){
temp = *(ptr + j);
*(ptr +j) = *(ptr+i-1-j);
*(ptr+i-1-j) = temp;
}
KatariTerstenYazdir(dizi1);
}