嗨,我对 C 很陌生,整个指针与字符的关系让我非常困惑。我最难做一些非常简单的事情。
我想用分隔符 "?=&"分解一个字符串(请求),并且我想将不同的部分存储在字符串数组中,但我似乎不知道如何操作。我觉得是因为我没有完全掌握指针的概念。
这是我的代码
char buf[1024], path[1024], request[1024], **query_string, *query_pointer;
query_pointer = strtok(request, "?=&");
strcpy(request, query_pointer);
while(query_pointer != NULL) {
strcpy(query_string, query_pointer);
query_string++;
query_pointer = strtok(NULL, "?=&");
}
最佳答案
一个非常基本的起始示例。
char **foo( char **result, char *str, const char *delim)
{
char *p=strtok(str, delim);
int i;
for(i=0; p!=NULL; p=strtok(NULL, delim)
result[i]=p;
result[i]=NULL;
return result;
}
void bar(char *str)
{
char *result[36]={NULL}; // 35 max tokens
int i=0;
result=foo(result, str, "?=&");
for(i=0; result[i]!=NULL && < 35; i++)
{
printf("%s\n", result[i]);
}
}
关于C 字符串数组 strtok(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15170585/