...

/

Practice: Build a Command-Line Tool

Practice: Build a Command-Line Tool

Follow the step-by-step instructions to practice function pointers and arrays by building a command-line tool.

Introduction

This lesson is a mix between a practice session and a coding challenge. View it as a follow-along tutorial!

There won’t be test cases or tasks that you have to solve. We’ll code the application together, step by step. Before we build each part of the application, you’re encouraged to try to write the code on your own, based on the description.

Problem statement

We want to write the backbone of a command-line application. The application will feature several commands, and we need to add more commands in the future. Therefore, we should register the commands dynamically, without having to write a bunch of if and else cases for every single one. Moreover, we want to have multiple names for the same command. We should be allowed to register aliases for the same command without duplicating the code.

The application could be anything, but to make the example easier to follow, we’ll use a theme of a word processor.

  • The commands can be cut, copy, paste, and other similar commands.
  • The same action can have multiple names. For example, we may want to register the same command twice, once as search and once as find.
  • In the future, we may add a lot of complex word processing commands, so the application must be easily extensible.
  • Each command may have a different number of arguments or arguments of different types. We need to standardize the header of the command function handlers and
...