c/c++开发分享c中的字符串标记生成器

下面的代码将使用空格分解字符串命令,即“”和句号,即“。”。 如果我想使用空格和完全停止(同时)的出现来分解命令,而不是每个都自己,例如命令如下:’hello .how are you’将被分解成碎片(忽略引号)[你好] [你今天好吗]

char *token2 = strtok(command, " ."); 

    你可以用strstr很容易地做到这一点:

     char *strstrtok(char *str, char *delim) { static char *prev; if (!str) str = prev; if (str) { char *end = strstr(str, delim); if (end) { prev = end + strlen(delim); *end = 0; } else { prev = 0; } } return str; } 

    这与strtok的实现几乎完全相同,只是调用strstrstrlen而不是strcspnstrspn 。 它也可能返回空标记(如果有两个连续的分隔符或两端的分隔符); 如果您愿意,可以安排忽略这些。

    您最好的选择可能只是使用strstr抓取您的输入, strstr会查找子字符串的出现,并手动对其进行标记。

    这是你提出的一个常见问题,但我还没有看到一个特别优雅的解决方案。 然而,上述内容简单易行。

    需要了解更多c/c++开发分享c中的字符串标记生成器,也可以关注C/ C++技术分享栏目—猴子技术宅(www.ssfiction.com)

      以上就是c/c++开发分享c中的字符串标记生成器相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/957964.html

      发表评论

      邮箱地址不会被公开。 必填项已用*标注