Gönderen Konu: C de Sadece Sayı ya da Harf girme  (Okunma sayısı 4349 defa)

Çevrimdışı Ridian

  • Üye
  • İleti: 12
    • Profili Görüntüle
C de Sadece Sayı ya da Harf girme
« : 17 Nis 2013, 09:59:40 Çrş »
Arkadaşlar program takir takir calisiyor saniyodum ki aklima bi anlik gelen sorunum cevaibini bulamadim.Mesela 5 e basinca menuye donuyor fakat a ya basarsam program sacmalamaya basliyor.yani bi yerde girilecek degerin sadece sayi ya da harf olmasini nasil saglayabiliriz ? bunu heralde harf girince yeniden soracak sekilde ayarlamamiz lazim ama butun harfleri elle yazmayacaz sanirsam ascii kodlar araliginda mi engelleyecez vs vs bi yolu varsa ve yardim ederseniz cok mutlu olurum ^_^ bunun tam tersini denemedim yani harf ya da string isteyen bi yere sayi girmeyisayilarida banlamak lazim :D
« Son Düzenleme: 17 Nis 2013, 10:01:27 Çrş Gönderen: Ridian »

Çevrimdışı zafer11

  • Üye
  • İleti: 28
    • Profili Görüntüle
Ynt: C de Sadece Sayı ya da Harf girme
« Yanıtla #1 : 17 Nis 2013, 12:31:15 Çrş »
Kod: [Seç]
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
int main()
{
char c;
do{
printf("Bir harf giriniz\n");
c=getch();
}while(isalpha(c)==0);
printf("Girdiginiz harf %c\n\n",c);

do{
printf("Bir rakam giriniz\n");
c=getch();
}while(isdigit(c)==0);
printf("Girdiginiz rakam %c\n",c);

getch();

return 0;
}

Çevrimdışı 146z

  • Üye
  • İleti: 1
    • Profili Görüntüle
Ynt: C de Sadece Sayı ya da Harf girme
« Yanıtla #2 : 17 Mar 2018, 23:14:00 Cts »
mesela hazır kodlar (isalpha gibi) kullanmadan nasıl yazılır ascıı aralığı yada her harfi mi nasıl girmeliyiz

Çevrimdışı zafer11

  • Üye
  • İleti: 28
    • Profili Görüntüle
Ynt: C de Sadece Sayı ya da Harf girme
« Yanıtla #3 : 11 Nis 2019, 21:31:49 Prş »
Kod: [Seç]
#include<stdio.h>
#include<conio.h>

short int my_isalpha( char c)// short int tipi code blocks un bool tipini kabul etmemesinde kullanıldı
{
    char arrayalpha[65]={"abcçdefgğhıijklmnoöpqrsştuüvwxyzABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ"};
    //65 indeksi sonlandırıcı karakterin = (null karakter) = '\0' diziye dahil olması için
    int i=0;
    while(i!=64 && arrayalpha[i]!=c)
    {
        i++;
    }



    if(i==64)
        return 0;
    else if(i<64)
        return 1;
}
short int my_isdigit( char c)
{
    char arraydigit[11]={"0123456789"};

        int i=0;
    while(i!=10 && arraydigit[i]!=c)
    {
        i++;
    }

    if(i==10)
        return 0;
    else if(i<10)
        return 1;
}
int main()
{
char c;
do{
printf("Bir harf giriniz\n");
c=getch();
}while(my_isalpha(c)==0);
printf("Girdiginiz harf %c\n\n",c);

do{
printf("Bir rakam giriniz\n");
c=getch();
}while(my_isdigit(c)==0);
printf("Girdiginiz rakam %c\n",c);
    puts("Sonlandirmak icin Enter a basiniz");
getchar();

return 0;
}

« Son Düzenleme: 14 Nis 2019, 13:26:12 Paz Gönderen: zafer11 »