Özet - Dize fonksiyonları
- C kursu
- Başlangıç
- Ders 93/116
- 5 dk
strchr, strtok ve sprintf'i birleştirerek bir CSV ayrıştırıcı yazarsın.
Özet - Dize fonksiyonları
Bu grupta beş temel dize fonksiyonunu öğrendin. strchr tek karakter, strstr alt dize arar. strtok dizeyi ayraçlarla böler. sprintf bir dize tamponuna biçimli yazar, sscanf ise bir dizeden biçimli okur.
char *p = strchr(s, 'a');
char *q = strstr(s, "he");
char *t = strtok(s, ",");
sprintf(buf, "%d", n);
sscanf(s, "%d", &n);Hepsi <string.h> veya <stdio.h> başlığıyla gelir. Dönüş değerlerini ve NULL kontrolünü unutmamalısın. Şimdi beş fonksiyonu birarada kullanan bir ödev yapacaksın.
Uygulama Virgülle ayrılmış meyveleri say
"elma,armut,muz" dizesini strtok ile virgüle göre böl. Bir while döngüsü ile parçaları gez; her parça için bir count sayacını artır. Döngüden sonra printf ile count değerini yazdır. <string.h> başlığını ekle.
Başlangıç kodu
#include <stdio.h>
int main(void) {
char text[] = "elma,armut,muz";
/* strtok ile parçalara böl; while ile gez; count say; printf ile yazdır */
return 0;
}Örnek çözüm
#include <string.h>
int count = 0;
char *tok = strtok(text, ",");
while (tok != NULL) {
count++;
tok = strtok(NULL, ",");
}
printf("%d\n", count);Beklenen çıktı
3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Fonksiyon ve görev eşleştir
| Kavram | Anlamı |
|---|---|
strchr |
Karakter arar |
strstr |
Alt dize arar |
strtok |
Parçalara böler |
sprintf |
Dizeye yazar |
sscanf |
Dizeden okur |
2 Bir alt dizeyi bulmak için hangi fonksiyon kullanılır?
- strchr
- strstr Doğru cevap
- strtok
- sprintf
Açıklama: strstr bir dize içinde başka bir dizeyi arar.
3 Boşluğu doldur: dizeyi böl
char *tok = ____(text, ",");
char *tok = strtok(text, ",");
Açıklama: strtok dizeyi ayraçlarla böler.