繁体   English   中英

C-strsep分割字符串

[英]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]);

但是我遇到了段错误。

字符串是字符数组。 您意识到args是char **,所以基本上它是一个数组数组。 您可以检查args条目是否包含“-”,如果为true,则可以执行简单的字符串concat并将该值添加到args。 检查字符串的第一个字符的值。

以编程方式,

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM