C
Özet - Standart kütüphane
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));.
Örnek çözümü göster
#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;
}
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.
Kendini test et
-
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)
Cevabı göster
stdlib.h (qsort) — qsort stdlib.h başlığında tanımlıdır.
-
Başlıklar ve işlevler
- stdlib.h
- qsort
- string.h
- strlen
- math.h
- sqrt
- ctype.h
- toupper
Sıradaki ders: argc ve argv