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
#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
#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
for (int i = 1; i < ____; i++)
for (int i = 1; i < argc; i++)
Açıklama: i < argc koşulu son argümana kadar döngüyü sürdürür.