Implement a Simple Shell Command Parser

Code

#include <stdio.h>
#include <ctype.h>

void parse_shell_input(char *line) {
    char tokens[10][20];
    int i = 0, j = 0, top = 0;

    // Loại bỏ newline
    while (line[i] != '\0') {
        if (line[i] == '\n') {
            line[i] = '\0';
            break;
        }
        i++;
    }

    i = 0;

    while (line[i]) {
        // Bỏ qua khoảng trắng
        while (isspace(line[i])) {
            i++;
        }

        if (line[i] == '\0') break;

        j = 0;
        while (line[i] && !isspace(line[i])) {
            tokens[top][j++] = line[i++];
        }

        tokens[top][j] = '\0';
        top++;
    }

    // In kết quả
    for (int k = 0; k < top; k++) {
        printf("%s\n", tokens[k]);
    }
}

int main() {
    char line[101];
    fgets(line, sizeof(line), stdin);

    parse_shell_input(line);
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

led set 3 on

Expected Output

led set 3 on