我有一个应用程序,它从命令行读取特定命令并处理命令。 例如:
我有一个名为" setparamval"用于设置参数值。 从命令行传递时此命令的语法如下所示:
setparamval <variable_name>,<value>
假设我有一个名为&#34; DESC&#34;的变量。我希望将值设置为&#34; ab cd ef gh&#34; 我将命令行参数传递为:
setparamval DESC,"ab cd ef gh"
(我传递的内容&#34;&#34;,否则命令行将其视为单独的参数..)
直到这里一切都很好......
接下来,在我的代码中,我尝试使用以下命令从命令行传递的命令中提取参数名称和值:
char inputCmd[TAGNAME_LEN];
strcpy(inputCmd,argv[1]);
当我在&#34; inputCmd&#34;中看到值时,我得到:&#34; DESC,&#34; ab cd ef gh&#34;。 现在我想使用以下参数值(分隔符为&#34;,&#34;)分隔参数:
char *savePtr = NULL;
char *src = inputCmd; //argv[1];
ch = strtok_r(src, ",", &savePtr);
当我在savePtr中看到值时,我得到:&#34;&#34; ab cd ef gh&#34;。 还有一个额外的&#34;添加到字符串的开头。 我不确定为什么会这样添加。
你可以帮我解决这个问题吗? 感谢您的耐心和帮助。