我用C语言为我的simpleShell程序创建了一个simpleShell方法,并将每个参数存储在要存储在simpleShell数组中的分隔符空格之前。但是,我试图在链接列表中添加带有它们各自参数的参数,但我在获取它们时遇到了困难。
例如,如果我输入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]);但我错了。
发布于 2015-09-12 20:03:43
字符串是一个字符数组。您会意识到args是char**,所以它基本上是一个数组。您可以检查args条目是否包含“-”,如果是真的,则可以执行一个简单的字符串连接,并将该值添加到args中。检查字符串的第一个字符的值。
从程序上讲,
if(args[i][0] == '-')
<Insert code for concatenation>https://stackoverflow.com/questions/32542979
复制相似问题