首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >肯定有更好的方法来降低

肯定有更好的方法来降低
EN

Stack Overflow用户
提问于 2013-03-28 05:18:25
回答 4查看 72关注 0票数 1

大家好,我目前正在使用下面的代码,我非常确定有更好的方法可以做到这一点。代码所做的是查看是否有分隔符(),将所有内容放在cmd之前,将所有内容放在param中。如果有人能让我知道我应该怎么做,那就太感谢了!我不习惯低级语言,所以字符串和指针仍然让我感到困惑!

谢谢!

代码语言:javascript
复制
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));
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-28 05:22:19

您可以按如下方式简化代码:

代码语言:javascript
复制
char cmd[1024], *tempCharPointer, *param = "";
// Fill in cmd from somewhere...
...
char *delim = strstr(cmd, "~~~~");
if(delim)
{
    param = delim+4;
    *delim = '\0';
}
票数 1
EN

Stack Overflow用户

发布于 2013-03-28 05:20:35

您可以简化代码并在分隔符之前插入命令(修改分隔符的第一个字符并将其设置为\0),并使\0成为指向字符串开头的指针,并将指向分隔符后第一个字符的指针设为参数。节省你的内存和所有这些动作等等。

票数 0
EN

Stack Overflow用户

发布于 2013-03-28 05:23:53

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15669705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档