c++ strtok_s
时间: 2023-07-28 19:53:30 浏览: 104
`strtok_s`是C标准库中的字符串处理函数,用于将一个字符串分割成多个子字符串。与`strtok`函数相比,`strtok_s`是更加安全的函数,因为它需要传递一个额外的参数用于指定分隔符和处理后的子字符串的存储位置,避免了一些潜在的缓冲区溢出问题。
下面是`strtok_s`函数的原型:
```c++
char* strtok_s(char* str, const char* delim, char** context);
```
其中,`str`是待分割的字符串,`delim`是分隔符,`context`是一个指向指针的指针,用于存储每次分割后的剩余部分。
`strtok_s`函数的使用方法与`strtok`类似,可以通过多次调用来将一个字符串分割成多个子字符串。需要注意的是,`strtok_s`函数在使用时需要传入一个指向指针的指针参数,因为它会修改传入的字符串指针。
下面是一个简单的示例代码,使用`strtok_s`函数将一个字符串按照空格分割成多个子字符串:
```c++
#include <cstring>
#include <iostream>
int main()
{
char str[] = "Hello world, this is a test.";
char* token = nullptr;
char* context = nullptr;
token = strtok_s(str, " ", &context);
while (token != nullptr)
{
std::cout << token << std::endl;
token = strtok_s(nullptr, " ", &context);
}
return 0;
}
```
输出结果为:
```
Hello
world,
this
is
a
test.
```
阅读全文