ctype.h
- C kursu
- Orta seviye
- Ders 86/116
- 5 dk
ctype.h ile karakter sınıflandırma öğrenirsin.
ctype.h
<ctype.h> başlığı karakter sınıflandırma ve dönüşüm işlevleri sunar: isalpha (harf mi), isdigit (rakam mı), toupper (büyük harfe çevir) ve tolower (küçük harfe çevir).
Bu işlevler bir int alır (bir char'ın sayısal değeri) ve bir int döndürür. isalpha('A') doğru (sıfırdan farklı), isdigit('5') doğru, isdigit('a') yanlış (0). toupper('a') 'A' döndürür; zaten büyük harfse aynı kalır. tolower tersini yapar. Türkçe karakterlerde bu işlevler Yerel (locale) ayarına bağlıdır; varsayılan C yerelinde yalnızca ASCII harfler çalışır. Dizgiyi büyük harfe çevirmek için bir döngü içinde her karaktere toupper uygularız.
Dizgiyi büyütme
Bir dizginin tüm harflerini büyük harfe çevirmek için bir döngü kurar ve her karaktere toupper uygularız. Döngü, null karaktere gelene kadar devam eder.
Tanım: char s[] = "merhaba"; for (int i = 0; s[i]; i++) s[i] = toupper(s[i]);. Burada s[i] koşulu, s[i] null (0) olduğunda döngüyü durdurur. Her adımda toupper harfi büyütür ve geri yazar. Sonuç: MERHABA. Bu teknik metin normalleştirme için yaygındır; örneğin kullanıcı girdisini büyük harfle karşılaştırmak isterseniz önce büyütürsün. tolower ile aynı yöntem küçük harf için kullanılır. Karakter dizilerini yerinde (in-place) değiştirmek, bellek tasarrufu sağlar.
Uygulama Dizgiyi büyüt
main'de char s[] = "merhaba";. for (int i = 0; s[i]; i++) döngüsünde s[i] = toupper(s[i]);. Döngüden sonra printf("%s\n", s);.
Başlangıç kodu
#include <stdio.h>
#include <ctype.h>
// main: char s[] = "merhaba";
// for döngüsüyle her harfi toupper ile büyüt
// printf ile yazdır
int main(void) {
// buraya yaz
return 0;
}Örnek çözüm
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "merhaba";
for (int i = 0; s[i]; i++) {
s[i] = toupper(s[i]);
}
printf("%s\n", s);
return 0;
}Beklenen çıktı
MERHABA
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 ctype işlevleri
| Kavram | Anlamı |
|---|---|
isalpha |
harf mi |
isdigit |
rakam mı |
toupper |
büyük harf yap |
tolower |
küçük harf yap |
2 Büyük harfe çevir
s[i] = ____(s[i]);
s[i] = toupper(s[i]);
Açıklama: toupper harfi büyük harfe çevirir.
3 toupper('a') ne döndürür?
- 0
- 'a'
- 'A' Doğru cevap
- 1
Açıklama: toupper küçük harfi büyük harfe çevirir.