【发布时间】:2019-11-10 03:42:38
【问题描述】:
我一直在尝试解决这个问题,但我完全不知道如何解决这个问题。我有一个相当大的项目,我无数次使用 strtok 没有任何问题,但它在这里不起作用。请帮忙:(
编辑:我正在寻找前缀删除而不是 strtok。如果有人对此感到困惑并用谷歌搜索,我将把它留在这里。
这是有问题的代码:
#include <stdio.h>
#include <string.h>
int main()
{
char root[1000];
char home[1000];
strcpy(root,"/Users/me/Desktop/my-project"); // this is working
strcpy(home,"/Users/me/Desktop/my-project/home"); // this is working
strtok(home,root); // here's the problem
printf("%s",home);
}
结果 1:
/Users/me/Desktop/my-project/h
我也试过了:
char *ptr = strtok(home,root);
printf("%s",ptr);
结果 2:
h
不应该都返回/home 吗?
【问题讨论】:
-
我认为您需要进一步阅读
strtok,第二个参数是指向 single 字符列表的指针以用作分隔符,它不太适合用于删除常用前缀。 -
@paxdiablo 哦,你说得对,我在整个项目中一直在使用你所说的话,哈哈。你回答后我找到了解决方案。谢谢你:)
-
杰弗里,您应该发布您的解决方案作为答案并自我接受。按照 SO 指南,这完全没问题。
标签: c arrays string token strtok