繁体   English   中英

如何使用Strtok标记Const char *?

[英]How to use Strtok for tokenizing a Const char*?

我有一个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);

将其声明为数组:

char tokenedStr[] = "OpenStack:OpenStack1";

如果不可能,将其复制到char数组。

您可以复制不可修改的字符串,然后使用strtok

您可以使用mallocstrcpy来复制字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM