我正在制作一个非常简单的 C 程序来模拟导出命令,使用 fgets() 获取输入。
输入示例:
键=值
必须转换为:
setenv("KEY", "VALUE", 1);
使用类似于此代码的内容很容易解决:
key = strtok(aux, "=");
value = strtok(NULL, "=");
当用户输入一个以一个或多个等于=
字符开头的值时,问题就出现了。例如:
键===值
这应该转换为:
setenv("KEY", "==VALUE", 1);
但是使用我当前的代码,它被转换为:
setenv("KEY", NULL, 1);
我该如何解决这个问题?
谢谢指教。
您的第二个strtok()
不应=
用作分隔符。只有当有另一个=
值结束时,你才会这样做。但该值在字符串的末尾结束。对这部分使用空分隔符。
key = strtok(aux, "=");
value = strtok(NULL, "");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句