c++ - 如何使用 Strtok 对 Const char* 进行标记?

标签 c++ c strtok

我有一个 const char* 变量,它的值可能类似于“OpenStack:OpenStack1”。我想使用 strtok 标记这个 const char* ,其中分隔符(它是 const char* 类型)是 ":"。但问题是 strtok 属于以下类型: char * strtok ( char * str, const char * delimiters );

这意味着我不能将 const char* 用于第一个输入,因为它必须是 char*。你能告诉我如何将这个 const char* 转换为 char* 吗?

谢谢。

最佳答案

由于 strtok 实际上写入您的字符串,因此您需要对其进行可写拷贝以进行标记化;

char* copy = strdup(myReadonlyString);
...tokenize copy...
free(copy);

关于c++ - 如何使用 Strtok 对 Const char* 进行标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281712/

相关文章:

c - c中的fork()系统调用

c - 在 C 中使用 strtok 解析文件

strtok 的更清晰的实现

c++ - std::set 和 < 运算符重载的奇怪行为?

c++ - 如何在 C++ 中标记字符串?

c++ - 调用未知参数的函数

c++ - 字符 *newx=p+strlen(str1);这将如何执行,因为 strstr 将返回指向另一个字符串的第一个匹配字符的指针

c - 我是否要转换 malloc 的结果?

c++ - MurmurHash 函数不具有确定性

c++ - Strtok 在行尾返回额外的数据