CodeBlanks Logo Icon CodeBlanks

Özet - Standart kütüphane

  • C kursu
  • Orta seviye
  • Ders 87/116
  • 5 dk

stdlib, math ve time'ı birleştirerek bir zaman ölçüm uygulaması yazarsın.

Özet - Standart kütüphane

Bu grupta C standart kütüphanesinin beş başlığını gezdik: stdlib.h (atoi, qsort), string.h (strcpy, strcat, strlen), math.h (sqrt, pow), time.h (struct tm, mktime) ve ctype.h (toupper).

Mini görev: {3, 1, 2} dizisini qsort ile sırala, "test" dizgisini toupper ile büyüt, strlen ile boyunu bul ve hepsini tek printf ile yazdır. Bu, standart kütüphanenin gücünü gösterir: birkaç satırda sıralama, dizgi düzenleme ve boyut hesabı yapılır. Çıktı: 1 2 3 TEST 4. Burada 4, "TEST" dizgisinin null hariç karakter sayısıdır.

Uygulama Beş başlığı birleştir

int cmp(const void *a, const void *b) yaz: return *(int*)a - *(int*)b;. main'de int arr[] = {3, 1, 2};, qsort(arr, 3, sizeof(int), cmp);. char s[] = "test";, for (int i = 0; s[i]; i++) s[i] = toupper(s[i]);. printf("%d %d %d %s %zu\n", arr[0], arr[1], arr[2], s, strlen(s));.

Başlangıç kodu

main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

// cmp: iki int'i karşılaştır
// main: {3, 1, 2} dizisini qsort ile sırala
// "test" dizgisini toupper ile büyüt
// printf ile sıralı dizi, büyütülmüş dizgi ve boyu yazdır

int main(void) {
    // buraya yaz
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int cmp(const void *a, const void *b) {
    return *(int*)a - *(int*)b;
}

int main(void) {
    int arr[] = {3, 1, 2};
    qsort(arr, 3, sizeof(int), cmp);
    char s[] = "test";
    for (int i = 0; s[i]; i++) s[i] = toupper(s[i]);
    printf("%d %d %d %s %zu\n", arr[0], arr[1], arr[2], s, strlen(s));
    return 0;
}

Beklenen çıktı

1 2 3 TEST 4

Standart kütüphanede dikkat

Standart kütüphane güçlü ama dikkat ister. Üç temel nokta: bellek sınırını denetle (strcpy/strcat taşır), tür uyumunu gözet (atoi hata veremez, 0 döndürür), yerel ayarını bil (toupper varsayılan olarak yalnız ASCII harfleri büyütür).

strncpy ve strncat sınırlı varyantlar daha güvenlidir; bir boyut parametresi alırlar. atoi yerine strtol daha sağlamdır; hata durumunda ayrı bir işaretçi ile bildirim verir. toupper Türkçe karakterler için setlocale(LC_ALL, "tr_TR") çağrısı gerektirir; yoksa 'i' harfi 'I' olur (İ olması gerekirken). Bu ilkeler, sağlam C kodunun temelidir; üretim projelerinde her zaman göz önünde bulundurulmalıdır.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir diziyi sıralamak için hangi başlık kullanılır?

  • string.h (strcpy)
  • math.h (sqrt)
  • ctype.h (toupper)
  • stdlib.h (qsort) Doğru cevap

Açıklama: qsort stdlib.h başlığında tanımlıdır.

2 Başlıklar ve işlevler

Kavram Anlamı
stdlib.h qsort
string.h strlen
math.h sqrt
ctype.h toupper

Orta seviye bölümündeki tüm dersler