gpt4 book ai didi

C - 将带有重复分隔符字符的字符串拆分为 2 个子字符串

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:38 24 4
gpt4 key购买 nike

我正在制作一个非常简单的 C 程序来模拟 export 命令,使用 fgets() 获取输入。

输入示例:

KEY=VALUE

必须转换为:

setenv("KEY", "VALUE", 1);

这很容易用类似这段代码的东西来解决:

key = strtok(aux, "=");
value = strtok(NULL, "=");

当用户输入一个以一个或几个等于 = 字符开头的值时,就会出现问题。例如:

KEY===VALUE

这应该转换为:

setenv("KEY", "==VALUE", 1);

但是使用我当前的代码,它被转换为:

setenv("KEY", NULL, 1);

我该如何解决这个问题?

谢谢你的建议。

最佳答案

您的第二个 strtok() 不应使用 = 作为分隔符。只有当有另一个 = 结束该值时,您才会这样做。但是值在字符串的末尾结束。这部分使用空分隔符。

key = strtok(aux, "=");
value = strtok(NULL, "");

关于C - 将带有重复分隔符字符的字符串拆分为 2 个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53287894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com