C Academy · Pelajaran

argc dan argv

Baca argumen program.

Pelajaran 1 dari 413 langkah

argc dan argv adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C Academy mencakup 4 pelajaran total.

Program menerima argumen

Saat menjalankan program dari terminal, Anda dapat meneruskan kata-kata tambahan yang disebut argumen baris perintah.

C meneruskannya ke main melalui dua parameter: argc (jumlah argumen) dan argv (vektor argumen).

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("This program received %d arguments\n", argc);
    return 0;
}

Signatur main

Bentuk lengkap main adalah:

  • int main(int argc, char *argv[])

argc adalah jumlah argumen. argv adalah array penunjuk string, satu untuk setiap argumen.

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("argc = %d\n", argc);
    return 0;
}

argv[0] adalah nama program

Elemen pertama, argv[0], adalah nama (atau jalur) yang digunakan untuk menjalankan program.

Itulah sebabnya argc setidaknya bernilai 1 meskipun pengguna tidak memberikan argumen tambahan.

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Program name: %s\n", argv[0]);
    return 0;
}

Mencetak semua argumen

Anda dapat melakukan perulangan dari indeks 0 hingga argc - 1 untuk mengunjungi setiap string argumen dalam argv.

#include <stdio.h>

int main(int argc, char *argv[]) {
    for (int i = 0; i < argc; i++) {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    return 0;
}

argv diakhiri dengan null

Menurut standar C, argv[argc] dijamin merupakan penunjuk NULL.

Artinya, Anda dapat melakukan perulangan hingga menemukan NULL alih-alih menggunakan argc, meskipun penghitungan dengan argc lebih umum digunakan.

#include <stdio.h>

int main(int argc, char *argv[]) {
    char **p = argv;
    while (*p != NULL) {
        printf("%s\n", *p);
        p++;
    }
    return 0;
}

Argumen selalu berupa string

Setiap argumen diterima sebagai string, bahkan angka. Jika pengguna memberikan 42, Anda menerima teks "42", bukan bilangan bulat.

Anda harus mengonversinya sendiri dengan fungsi seperti atoi atau strtol.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    if (argc > 1) {
        int n = atoi(argv[1]);
        printf("Number plus one is %d\n", n + 1);
    } else {
        printf("Pass a number\n");
    }
    return 0;
}

Memeriksa jumlah argumen

Selalu verifikasi argc sebelum membaca argv[i]. Mengakses indeks yang melebihi argumen yang diberikan merupakan perilaku yang tidak terdefinisi.

Pemeriksaan yang umum dilakukan adalah memastikan jumlah argumen mencukupi dan mencetak pesan penggunaan jika tidak.

#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc < 2) {
        printf("Usage: %s <name>\n", argv[0]);
        return 1;
    }
    printf("Hello, %s!\n", argv[1]);
    return 0;
}

Menggunakan kode keluar yang bukan nol

Jika argumennya salah, kembalikan nilai bukan nol dari main untuk memberi tahu shell bahwa terjadi kegagalan.

Menurut konvensi, 0 berarti berhasil, sedangkan nilai lainnya berarti terjadi kesalahan.

#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc != 3) {
        printf("Need exactly 2 arguments\n");
        return 1;
    }
    printf("Got both arguments\n");
    return 0;
}

Menjumlahkan argumen numerik

Contoh praktis: jumlahkan semua angka yang diberikan pada baris perintah dengan mengonversi masing-masing angka menggunakan atoi, lalu mengakumulasikannya menjadi total.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int sum = 0;
    for (int i = 1; i < argc; i++) {
        sum += atoi(argv[i]);
    }
    printf("Sum = %d\n", sum);
    return 0;
}

Notasi argv alternatif

Anda mungkin melihat char **argv, bukan char *argv[]. Sebagai parameter fungsi, keduanya memiliki arti yang sama: penunjuk ke penunjuk string pertama.

Keduanya memungkinkan Anda menggunakan indeks seperti argv[i].

#include <stdio.h>

int main(int argc, char **argv) {
    if (argc > 1)
        printf("First arg: %s\n", argv[1]);
    return 0;
}

Menggemakan kembali argumen

Perintah echo klasik cukup mencetak argumennya. Berikut versi minimal yang menggabungkannya dengan spasi.

#include <stdio.h>

int main(int argc, char *argv[]) {
    for (int i = 1; i < argc; i++) {
        printf("%s", argv[i]);
        if (i < argc - 1) printf(" ");
    }
    printf("\n");
    return 0;
}

Pemeriksaan Cepat

Uji pemahaman Anda tentang argc dan argv.

Rangkuman

Anda telah mempelajari cara program membaca masukan baris perintah:

  • main(int argc, char *argv[]) menerima jumlah dan lariknya.
  • argv[0] adalah nama program; argumen sebenarnya dimulai pada indeks 1.
  • argv[argc] adalah NULL.
  • Argumen selalu berupa string; konversikan angka dengan atoi dan validasikan argc terlebih dahulu.
Gratis untuk memulai

Belajar C dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
39
Pelajaran
144

Pertanyaan yang Sering Diajukan

Apakah pelajaran “argc dan argv” gratis?

Ya — teks lengkap “argc dan argv” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C Academy, upgrade ke CoddyKit PRO. Kursus C Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “argc dan argv”?

Baca argumen program. Kamu berlatih C Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C Academy?

Tidak diperlukan pengalaman sebelumnya. C Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “argc dan argv” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C Academy ini?

Ya. Setiap pelajaran C Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. argc dan argv
  2. Parsing Opsi
  3. getopt
  4. Membangun Alat CLI
← Kembali ke C Academy