Özgür Yazılım Sayfaları

Genel => Programlama ve Veritabanı => C Programlama Dili => Konuyu başlatan: Ridian - 17 Nis 2013, 09:59:40 Çrş

Başlık: C de Sadece Sayı ya da Harf girme
Gönderen: Ridian - 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
Başlık: Ynt: C de Sadece Sayı ya da Harf girme
Gönderen: zafer11 - 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;
}
Başlık: Ynt: C de Sadece Sayı ya da Harf girme
Gönderen: 146z - 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
Başlık: Ynt: C de Sadece Sayı ya da Harf girme
Gönderen: zafer11 - 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;
}