C - strsep splitting strings



我为我的C语言simpleShell程序创建了一个parseCmd方法,并将每个参数存储在分隔符空格之前,以存储在args[]数组中。然而,我正试图将带有各自参数的参数添加到链表中,但我在获取它们时遇到了麻烦。

例如,如果我输入ls,我想:

args[0] = "ls";

当我输入ls -l时,我想要;

args[0] = "ls";
args[1] = "-l";

我在这里要做的是:如果检测到"-"参数,将其附加到前面的参数"ls"后,并将其保存为单独的字符串"ls -l"以存储到linkedList中(已经实现)。

这是我的方法。

void parseCmd(char* cmd, char** args)
{       
    int i;
    for(i = 0; i < MAX_LINE; i++) {
        args[i] = strsep(&cmd, " ");
        if (args[i] != NULL)
            printf("--> %s n",args[i]);
        if(args[i] == NULL) break;
    }
}
编辑:

我试了下面的

if (strchr(args[i], '-'))
    printf("--> %s n", args[i]);

但是我得到一个分段错误

String是字符数组。你意识到args是一个char**,所以基本上它是一个数组的数组。你可以检查args条目是否包含'-',如果它是真的,那么你可以做一个简单的字符串连接并将该值添加到args。检查字符串的第一个字符的值

通过编程

,

if(args[i][0] == '-')
    <Insert code for concatenation>

相关内容

  • 没有找到相关文章

最新更新