CodeBlanks Logo Icon CodeBlanks

Ö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

main.c
#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

main.c
#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

Soru
char *tok = ____(text, ",");
Cevap
char *tok = strtok(text, ",");

Açıklama: strtok dizeyi ayraçlarla böler.

Başlangıç bölümündeki tüm dersler