📜  C++ wcstok()(1)

📅  最后修改于: 2023-12-03 15:13:57.998000             🧑  作者: Mango

C++ wcstok()

在C++中,wcstok()是一个多字节字符串分割函数(strtok()的宽字符版本)。它允许我们将一个字符数组分割成多个字符串。

语法
wchar_t * wcstok(wchar_t * str, const wchar_t * delim, wchar_t ** ptr);

参数

  • str:待分割的字符串。
  • delim:分割字符集合,也就是我们需要用来分割 str 的字符串。
  • ptr:函数内的静态指针,指向被分割的字符串中下一个要切割的子字符串。

返回值

函数返回一个指向被分割的字符串中下一个要切割的子字符串的指针。如果没有剩余的子字符串可供返回,则返回 NULL

示例

下面的示例程序演示了如何使用 wcstok() 函数来拆分字符串:

#include <iostream>
#include <wchar.h>

using namespace std;

int main() {
    wchar_t str[] = L"Learn,C++,Programming";
    wchar_t * token = wcstok(str, L",");
    while (token != NULL) {
        wcout << token << endl;
        token = wcstok(NULL, L",");
    }
    return 0;
}

该代码段将输出以下内容:

Learn
C++
Programming
注意事项
  • str 字符数组中的字符串将被修改。它将被分割成多个子字符串,每个子字符串以 '\0' 结尾,并在 delim 中出现的字符处截断。
  • 如果字符串 str 中包含多个连续的 delim 字符,则返回的第一个子字符串为一个空字符串 ("")。
  • 由于 ptr 参数是函数内的静态指针,所以在调用第一个 wcstok() 函数之前,指针应被初始化为待分割字符串的地址。在后续调用中,该指针应为 NULL