CodeBlanks Logo Icon CodeBlanks

Argüman işleme

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

argv üzerinde döngü ile argüman işleme öğrenirsin.

Argümanları döngüyle gez

Argümanları işlemek için argv[1]'den argv[argc-1]'e kadar bir for döngüsü kurarsın. Her adımda argv[i], ilgili dizeyi verir.

Örnek: for (int i = 1; i < argc; i++) printf("%s\n", argv[i]);. Döngü i = 1'den başlar çünkü argv[0] program adıdır ve genellikle atlanır. %s dönüşümü bir dizeyi yazdırır. Bu desen, dosya adı listesi veya arama terimleri gibi birden çok girdi alan araçların temelidir.

Simüle edilmiş argümanlar

Argüman işleme desenini çalışma anında girdi olmadan denemek için, argv'ye benzer yerel bir dizi tanımlayabilirsin. Bu, çıktının her zaman aynı olmasını sağlar.

Örnek: char *args[] = {"prog", "elma", "armut"}; int n = 3;. Sonra for (int i = 1; i < n; i++) printf("%s\n", args[i]); yazarsın. Bu teknik, komut satırı araçlarını test ederken kullanışlıdır: gerçek argv yerine sabit bir dizi koyar, beklenen çıktıyı doğrularsın. Aynı döngü deseni hem simülasyonda hem gerçek argümanlarda çalışır.

Uygulama Simüle edilmiş argümanları yazdır

char *args[] = {"prog", "elma", "armut", "portakal"}; ve int n = 4; tanımla. for (int i = 1; i < n; i++) döngüsüyle her argümanı printf("%s\n", args[i]); ile yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

// args dizisini ve n sayısını tanımla
// döngüyle her argümanı yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int main(void) {
    char *args[] = {"prog", "elma", "armut", "portakal"};
    int n = 4;
    for (int i = 1; i < n; i++) {
        printf("%s\n", args[i]);
    }
    return 0;
}

Beklenen çıktı

elma
armut
portakal

Soru ve cevaplar

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

1 Döngü parçalarını eşle

Kavram Anlamı
i = 1 Başlangıç değeri
i < argc Devam koşulu
i++ Adım artışı
argv[i] Geçerli dize

2 Döngü neden i = 1'den başlar?

  • Çünkü döngüler 1'den başlamak zorundadır
  • Çünkü argc en az 1 olamaz
  • Çünkü argv[0] her zaman NULL'dur
  • Çünkü argv[0] program adıdır Doğru cevap

Açıklama: argv[0] program adını tutar; gerçek kullanıcı argümanları argv[1]'den başlar.

3 Döngü koşulunu tamamla

Soru
for (int i = 1; i < ____; i++)
Cevap
for (int i = 1; i < argc; i++)

Açıklama: i < argc koşulu son argümana kadar döngüyü sürdürür.

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