Metni ters çevirme

Bu dersimizde C dilinde ekrandan girilen metni ekrana tersten yazdıran program yapmayı öğrenelim.

Bu dersimizde C dilinde ekrandan girilen metni ekrana tersten yazdıran program yapmayı öğrenelim.


#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

main()

{

    int i,a;

    char metin[1000];// max 1000 karakter tutan metin adlı diziyi oluşturuyoruz.

    char x,y;

  

    printf("Metni giriniz:");

    gets(metin);// ekrandan metni girdiriyoruz.

  

    for(a=0;metin[a]!='£';a++){}// 0.elemandan başlayıp null('£') olana kadar

                                                   // int tipindeki a'yı arttırıyoruz.

    printf("Metnin Tersi:");

   

    for(i=a;i>=0;i--){// a.elemandan(son elemandan) başlayıp 0.elemana kadar

        printf("%c",metin);// ekrana yazdırıyoruz.

}



getch();

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

bu kodun mantığını anlatır mısın anlayamadım ayrıca derleyip çalıştırdığımda da metni yazdım o bana saçma bi şeyler yazdı :)
burda gets yerine scanf kullanabilrdik degilmi ? bide sanki cok fazla dongu acmısız daha farklı olmazmıydı tek dönguyle mesela bide ben dev cpp kullanıorum. sizce iyimi turco c mi kullansam daha ii
Program calisirken ciktida hata alanlar su deisklikleri yapsinlar : ilk for dongusu ; for(a=0;metin[a]!='0';a++){} ikinci for dongusu ; for(i=a-1;i>=0;i--){ olacak. Ilk dongu,de NULL icin verilen £ karakterini 0 ( sifir )ile degistiriyoruz. Ben Dev-C++ ile boyle calistirdim. Onu kullandigi derleyici de btis karakteri oyle olabilir. Ikinci dongu de ise a'yi bir azaltmamiz gerekiyor cunku bitis karakterinin basilmasini istemiyoruz.
Arkadaslar ustte duzeltmeyi girerken bilgi icerisindeki kisim kod olarak goruldugu icin sistem tarafindan kesilmis asagida tekrar veriyorum. BUYUK HARFLE yazdigim yerleri siz semboller ile degistirin. Yoksa sisteme takiliyor. Arada bosluk vs olmadan ters slash ve 0 yazacaksiniz. Program calisirken ciktida hata alanlar su deisklikleri yapsinlar : ilk for dongusu ; for(a=0;metin[a]!='TERS SLASH SIFIR';a++){} ikinci for dongusu ; for(i=a-1;i>=0;i--){ Ilk for dongusunde arkadasimiz null olarak £ isareti vermis. Onun kulandigi derleyici boyle kabul etmis olabilir. Dev-C++'da TERS SLASH ve SIFIR olarak degistirilince calisiyor. Ikinci dongude de a'yi bir azaltiyoruz ki null karakterini de basmasin.
#include <stdio.h> #include <stdlib.h> #include <conio.h> main() { int i,a; char metin[100]; char x,y; printf("Metni giriniz:"); gets(metin); printf("Metnin Tersi:"); //strlen ile ilk for döngüsünden kurtulmuş olacağız for(i=strlen(metin);i>=0;i--){//son elemandan ilk elemana kadar. printf("%c",metin[i]);// ekrana yazdırıyoruz. } getch(); }
[code]#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> main() { system("color 8f"); int i,a; char metin[1000]; char x,y; printf("Metni giriniz:"); gets(metin); for(a=0;metin[a]!='0';a++){} printf("Metnin Tersi:"); for(i=a-1;i>=0;i--){ printf("%c",metin[i]); } getch(); } [/code] tam olarak bu şekilde..
ilki oldu ama saçma yazılar cıktı. m3ric in dedigni yaptım bundada ismi yazında donuyor.

Yukarı Git