首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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

Stack Overflow用户

发布于 2013-03-28 05:31:17

C库中的strtok函数(从字符串中提取标记)在这里很有用。

下面是一个小示例。有关更多信息,请访问man strtok。请注意,strtok_r (在下面使用)用于可重入支持。

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

https://stackoverflow.com/questions/15669705

复制
相关文章

相似问题

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