std::strtok
时间: 2023-09-02 22:11:23 浏览: 47
`std::strtok` 是 C++ 标准库中的一个函数,用于将字符串分割成多个子字符串。它的原型在 `<cstring>` 头文件中声明,具体形式如下:
```cpp
char* strtok(char* str, const char* delimiters);
```
`strtok` 函数接受两个参数:要分割的字符串 `str` 和分隔符 `delimiters`。它会将 `str` 字符串按照 `delimiters` 中包含的字符分割成多个子字符串,并返回第一个非空的子字符串的指针。
在使用 `strtok` 函数时,需要注意以下几点:
- `strtok` 函数会修改输入的字符串,将分隔符替换为空字符 (`'\0'`),所以在使用之后原始字符串会被改变。
- 在第一次调用时,需要将要分割的字符串作为第一个参数传入。之后的调用则将第一个参数设为 `nullptr`。
- 在每次调用 `strtok` 函数时,它会返回一个指向分割后的子字符串的指针,如果没有更多的子字符串,则返回 `nullptr`。
下面是一个简单的示例代码,演示了如何使用 `std::strtok` 函数进行字符串分割:
```cpp
#include <iostream>
#include <cstring>
int main() {
char str[] = "Hello,World,C++,Programming";
char delimiters[] = ",";
char* token = std::strtok(str, delimiters);
while (token != nullptr) {
std::cout << token << std::endl;
token = std::strtok(nullptr, delimiters);
}
return 0;
}
```
以上代码将输出:
```
Hello
World
C++
Programming
```
希望这能解答您的问题!如果还有其他问题,请随时提问。