貌似//
表示URI的起始和随后的/
标志着路径的开始:
char *uri_start; // Start of URI
int uri_length; // Length of URI
char *path_start; // Start of Path (until end of string)
uri_start = strstr(url, "//");
if (uri_start == NULL) {
uri_start = url;
} else {
uri_start += 2; // skip "//"
}
path_start = strstr(uri_start, "/");
if (path_start == NULL) {
path_start = ""; // Path empty
uri_length = strlen(uri_start);
} else {
path_start += 1; // skip "/"
uri_length = path_start - uri_start - 1;
}
编辑: 复制URI:
char uri[300]; // or char *uri = malloc(uri_length + 1);
memcpy(uri, uri_start, uri_length); // Copy the uri
uri[uri_length] = '\0'; // nul-terminate the uri string
或(如果没关系,改变原始字符串):
uri_start[uri_length] = '\0'; // nul-terminates the uri but alters the url
我不知道什么是URI,但它通过搜索整个字符串中的第一个“/”来工作吗? –
我想过那个,但是如何识别路径开始的其他斜杠,它不是按顺序排列的? – Winston
你是否对Cocoa编码?如果是这样,请查看'NSURL'。 –