Implement a Simple Shell Command Parser

Code

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

void parse_shell_input(char *str) {
    int i = 0;
    int k = 0;

    while(str[i]==' '){
        i++;
    }

    while(str[i]){
        if(str[i]==' ' && str[i+1]==' '){
            i++;
        }else{
            str[k++] = str[i];
        }
        i++;
    }
    str[k] = '\0';

    char *temp = str;
    while(*str){
        if(*str==' '){
            *str = '\0';
            printf("%s\n",temp);
            temp = str+1;
        }
        str++;
    }
    printf("%s\n",temp);
}

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