C ile Harfi Decimal döüştürücüsü

Başlatan TX8R, 08 Mart 2019 - 20:55:29

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

TX8R

Program decimal sayıyı harfe harfide sayıya dönüştürüyor
Decimal sayıların ne olduğunu bilmeyen arkadaşlar internette arama yapabilirler Programın C kodları

#include <stdio.h>

int main( void ){
        int x,y;
        char c;
        printf("1.dec to text\n2.text to dec ");
        scanf("%d",&x);
        if (x==1){
                 printf("decimal sayi girin ");
                 scanf("%d" ,&y);
                 printf("harf %c\n",y);}

        else{
                printf("bir harf girin ");
                scanf(" %c" ,&c);
                printf("dec sayi %d\n",c);}

}
--linux is life--

Empat

Everything for me is just Peace - Love - Coding. Also, as they say: I am a programmer, I have no life!

TX8R

[mention=644716]@Empat[/mention] Teşekkür ederim. Umarım herkesin işine yarar  :)
--linux is life--

programmer

#3
Pekiyi '10' veya '13' veya 255'den büyük sayı girilirse ne olur? Taşma durumunda int'in düşük anlamlı baytını alıyor sanıyorum char'a atama yapıldığında int. Ancak PC ve Mac'de sıralamaları farklı olduğu için 255'den büyük sayılarda farklı karakterler çıkabilir işletim sistemine göre.
Belki bunun kontrolünü yapmak isteyebilirsiniz. "printable" (yazılabilir) ascii karakterler hangileridir araştırıp. Başarılar , iyi çalışmalar dilerim.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 12 Mart 2019 - 10:25:50




Harflerin görünüşü aktif olan locale ayarlarına göre değişir. Eğer POSIX uyumlu istiyorsanız setlocale ile [/size]LC_ALL değişkenini "C"ye ayarlamanız gerekir. 'ş' harfi için programızı test ettim "-59" çıktı. Neden? Çünkü "char" demek varsayılan olarak "signed char" demektir. Yani +127'den sonra eksi sayılar gelir. "En soldaki" bitin "1" olması eksi demektir. Onun için önerim:
char c;satırını
unsigned char c;
olarak değiştirmeniz. Ben yaptım. küçük "ş" için  "197"  çıktı mesela.