如何拆分 const char *?
How to split a const char *?
我有一个 const char*
代表一条路径 我想将它拆分成字符 /
处的字符串数组,这样我就可以逐步进行搜索。
我试过
char* str2 = strtok(str1,"/")
但是我的编译器returns一个
warning: initialization discards ‘const’ qualifier from pointer target type
如何在没有任何警告的情况下进行拆分?
strtok(3)
和 strtok_r(3)
就地改变字符串,这会阻止您传递 const 字符串。无论如何你都会想要传递一个副本,因为你不希望你的初始字符串被变异并变得不可用。
以下是使用 strdup(3)
的方法:
char* strtmp = strdup(str1);
char* str2 = strtok(strtmp,"/");
// Use str2 here
free(strtmp);
我有一个 const char*
代表一条路径 我想将它拆分成字符 /
处的字符串数组,这样我就可以逐步进行搜索。
我试过
char* str2 = strtok(str1,"/")
但是我的编译器returns一个
warning: initialization discards ‘const’ qualifier from pointer target type
如何在没有任何警告的情况下进行拆分?
strtok(3)
和 strtok_r(3)
就地改变字符串,这会阻止您传递 const 字符串。无论如何你都会想要传递一个副本,因为你不希望你的初始字符串被变异并变得不可用。
以下是使用 strdup(3)
的方法:
char* strtmp = strdup(str1);
char* str2 = strtok(strtmp,"/");
// Use str2 here
free(strtmp);