Yazan : Şadi Evren ŞEKER
Bu yazının amacı C kütüphanelerinden ctype.h kütüphanesini açıklamaktır. Kütüphane kabaca C dilinde bulunan karakterler (char) üzerinde işlem yapmaya imkan sağlar. Kütüphane ismi de buradan gelmektedir ( char + type = ctype) Amacı bir karakterin tipini algılama veya değiştirmektir. Kütüphane karakterler üzerinde işlem imkanı sağladığı için dizgiler (string) üzerinde yapılan işlemler açısından avantaj sağlar.
Kütüphane herhangi bir C kodunda aşağıdaki şekilde eklenir.
#include <ctype.h>
Eklemenin ardından aşağıdaki fonksiyonlar çağırılabilir:
Fonksiyon İsmi |
Açıklama |
isalnum | Karakterin alfa nümerik olup olmadığını sınar |
isalpha | Karakterin alfabetik bir karakter olup olmadığını sınar |
isblank | Karakterin boşluk karakteri olup olmadığını sınar |
iscntrl | Karakterin kontrol karakteri olup olmadığını sınar |
isdigit | Karakterin sayı olup olmadığını sınar |
isgraph | Karakterin yazıcıdan basılabilen bir karakter olup olmadığını denetler. Bu karakter boşluk olamaz. |
islower | karakterin küçük olarak yazılıp yazılmadığını sınar |
isprint | Karakterin basılabilir bir karakter olup olmadığını denetler |
ispunct | Karakterin bir imla karakteri olup olmadığına bakar |
isspace | karakterin boşluk karakteri olup olmadığını sınar (ascii 32) |
isupper | Karakterin büyük harf olup olmadığına bakar |
isxdigit | Karakterin onaltılık tabandaki bir sayı olup olmadığına bakar (hexadecimal) |
tolower | Karakteri küçük harfe çevirir |
toupper | Karakteri büyük harfe çevirir |
Örnek olarak klavyeden bir dizgi (string) alan ve bu dizgi içerisindeki büyük harfleri küçüğe ve küçük harfleri büyüğe çeviren kodu aşağıdaki şekilde kodlayabiliriz:
Kodun örnek çıktısı aşağıda verilmiştir:
#include
#include
#include
int main(){
char array[100];
int length;
printf(“Enter a word that must be includes max 10 characters:”); scanf(“%s”,array);
length=strlen(array);
if(length>10)
{
printf(“You entered a too long word.You can not enter a word more long from 10 characters!”);
}
printf(“%s\n”,array);
for(int i=0;i<length;i++)
{
{
array[i]=toupper(array[i]);
i++;
}
}
printf("%s",array);
return 0;
}
Sayın hocam kodum bu şekilde çalıştırdığımda kullacını mesela "bilgisayar" gibi hepsi küçük harfli bir kelime girsin. toupper fonksiyonu sayesinde çıktının "BILGISAYAR" olmasını istiyourum ama istisnasız bir şekilde "BiLgIsAyAr" gibi bir büyük bir küçük şeklinde çıkıyor hatamı bulamadım yardımcı olursanız çok makbule geçer.
Saygılar.
i’yi iki kere arttırıyorsunuz, döngü içerisindeki i++ satırını silin.
Fark ettim hocam sanırım fazla dikkat etmeden hemen sormuşum yinede sağolun 🙂