大家好,我目前正在使用下面的代码,我非常确定有更好的方法可以做到这一点。代码所做的是查看是否有分隔符(),将所有内容放在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:22:19
您可以按如下方式简化代码:
char cmd[1024], *tempCharPointer, *param = "";
// Fill in cmd from somewhere...
...
char *delim = strstr(cmd, "~~~~");
if(delim)
{
param = delim+4;
*delim = '\0';
}发布于 2013-03-28 05:20:35
您可以简化代码并在分隔符之前插入命令(修改分隔符的第一个字符并将其设置为\0),并使\0成为指向字符串开头的指针,并将指向分隔符后第一个字符的指针设为参数。节省你的内存和所有这些动作等等。
发布于 2013-03-28 05:23:53
char buffer[1024], *tempCharPointer, cmd[100], param[1024];
tempCharPointer = strstr(buffer, "~~~~");
if (tempCharPointer){
*tempCharPointer = '\0';
tempCharPointer +=4;
//now buffer points to the first half, and tempCharPointer points to second half
//do with them what you will
}https://stackoverflow.com/questions/15669705
复制相似问题