• Stars
    star
    2
  • Language
    C
  • License
    MIT License
  • Created 11 months ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simple and effective argument parser for C

Aria's C Argument Parser

Overview

Aria's C Argument Parser is a lightweight, easy-to-use command line argument parser for C programs. It efficiently handles various command line arguments and organizes them into a convenient HashTable structure, making it simple to retrieve and manage command line inputs in C applications.

Features

  • Parses command line arguments prefixed with '-' or '--' as keys.
  • Associates each key with its following value, unless the next argument is also a key.
  • Treats arguments without a '-' prefix and not following a key as keys themselves, returning their own values.
  • Easy retrieval of argument values using getfromhash.
  • Memory management with deletehash for cleaning up the HashTable.

Future Development

A function to return a helper message in case the program receives a --help key is planned. This will aid in providing users with guidance on how to use the command line arguments effectively.

Usage

Parsing Command Line Arguments

Include the parser header in your program:

#include "argument_parser.h"

Use the parse_args function to parse command line arguments:

HashTable* params = parse_args(argc, argv);

Retrieving Argument Values

Retrieve the value for a specific key:

char* value = getfromhash(params, "--key");

Cleaning Up

Free the HashTable memory after use:

deletehash(params);

Example

Here's a simple example demonstrating how to use Aria's C Argument Parser:

#include "aria_c_argument_parser/parser.h"

// Suppose the program was called like: ./main --key1 value1 value2
int main(int argc, char *argv[]) {
    HashTable* params = parse_args(argc, argv);

    char* value1 = getfromhash(params, "--key1"); // Returns value1
    char* value2 = getfromhash(params, "value2"); // Returns value2

    printf("Value for --key1: %s\n", value1);
    printf("Value for value2: %s\n", value2);

    deletehash(params);
    return 0;
}

In this example, --key1 and value2 are parsed from the command line arguments, and their values are retrieved and printed.