gpt4 book ai didi

C++如何将字符串转换为char *

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:52 24 4
gpt4 key购买 nike

我需要将字符串转换为 char * 以便在 strtok_s 中使用,但一直无法弄清楚。 c_str() 转换为 const char *,这是不兼容的。

此外,如果有人能向我解释为什么第二个 strtok_s 函数(在循环内)是必要的,那将是一个很大的帮助。为什么我需要显式地推进 token 而不是,例如,它所在的 while 循环,它连续地、隐式地获取文件的每一行。

while( getline(myFile, line) ) { // Only one line anyway. . . is there a better way?
char * con = line.c_str();
token = strtok_s( con, "#", &next_token);
while ((token != NULL))
{
printf( " %s\n", token );
token = strtok_s( NULL, "#", &next_token);
}
}

相关question .

最佳答案

使用strdup()c_str()返回的const char *复制到char * (记得 free() 之后)

请注意 strdup()free() 是 C 而不是 C++ 函数,您最好使用 std::string 的方法 代替。

第二个 strtok_s() 是必需的,否则你的循环将不会终止(token 的值不会改变)。

关于C++如何将字符串转换为char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com