c - 在 C 中使用 strtok 将 URL 分成两部分

标签 c

你好。我是 C 的新手。我想将 URL 分成两部分,由 C 中的第一个“/”分割。

我有代码:

char *token1, *token2;
token1 = strtok("website URL here", "/");
token2 = strtok(NULL, "/");

问题是,如果网站是这样的:“www.foo.com/foo/”,它就可以工作。我得到了“www.foo.com”和“foo”

但如果 URL 有多个“/”,例如“www.foo.com/foo1/foo2/foo3/”。我如何获得“www.foo.com”和“foo1/foo2/foo3/”?我不想做更多的标记,因为我不知道 URL 中会有多少个“/”。

谢谢。

最佳答案

您可以使用strchr 找到/ 的第一个索引:

/* char *url; */
char *first_slash = strchr(url, '/');

然后,first_slash + 1 是 url 的其余部分(如果 / 不在字符串中,则为 NULL)。如果要处理 2 个 C 字符串,则只需设置为 0:

*first_slash = 0;

那么,你的域名是url,其余的在first_slash

关于c - 在 C 中使用 strtok 将 URL 分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205591/

相关文章:

c - 我如何将 const 指针发送到 c 中的非 const 指针?

c - Linux TCP 连接被拒绝

c - 为什么我必须读取 a\n 才能继续读取字符串?

将等长的字符串复制到新的字符串数组

c - 为什么这个简单的 hello world 代码会出现段错误?

c - 查找像素的 xy 位置的函数

python - C和Python之间的套接字通信

c - 关键字 '%type' 和 '%token' 在 C 中有什么用?

c - printf 不产生输入值

c++ - 在不排序的情况下搜索数组中的重复项的最快方法是什么?