大家好,我目前正在使用下面的代码,我非常确定有更好的方法可以做到这一点。代码所做的是查看是否有分隔符(),将所有内容放在cmd之前,将所有内容放在param中。如果有人能让我知道我应该怎么做,那就太感谢了!我不习惯低级语言,所以字符串和指针仍然让我感到困惑!
谢谢!
char buffer[1024], *tempCharPointer, cmd[100], param[1024];
if(strstr(buffer, "~~~~"))
{
strcpy(cmd, buffer);
tempCharPointer = strstr(buffer, "~~~~");
index = (tempCharPointer-buffer) + 4;
strcpy(param, &tempCharPointer[4]);
memmove(&cmd[index-4], "", (index-4));
}发布于 2013-03-28 05:31:17
C库中的strtok函数(从字符串中提取标记)在这里很有用。
下面是一个小示例。有关更多信息,请访问man strtok。请注意,strtok_r (在下面使用)用于可重入支持。
#include <string.h>
#include <stdio.h>
int main(const int argc, const char const** argv)
{
char buffer[1024];
sprintf(buffer, "~~~~foo~~~~bar~~~~baz");
char* saveptr = NULL;
char* token = strtok_r(buffer, "~~~~", &saveptr);
while(token != NULL)
{
printf("TOKEN: %s\n", token);
token = strtok_r(NULL, "~~~~", &saveptr);
}
}https://stackoverflow.com/questions/15669705
复制相似问题