📜  C++中的wcstok()函数与示例(1)

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

C++中的wcstok()函数与示例

wcstok()是C++中的一个字符串切割函数,用于将宽字符串(wchar_t类型)按照指定的分隔符进行分割。该函数类似于strtok()函数,但专门用于宽字符。

语法
wchar_t* wcstok(wchar_t* str, const wchar_t* delimiter, wchar_t** context);
  • str: 需要切割的宽字符串,调用该函数时会改变该指针指向的字符串。
  • delimiter: 分隔符,用于确定切割的位置。
  • context: 保存切割位置的上下文,通常为NULL。
返回值

返回切割后的子字符串的指针。如果没有找到分隔符,函数返回NULL。

示例

下面是一个使用wcstok()函数的示例:

#include <iostream>
#include <cwchar>

int main() {
    wchar_t str[] = L"This,is,a,test";
    wchar_t* token;

    // 切割第一个子字符串
    token = wcstok(str, L",");
    while (token != NULL) {
        std::wcout << token << std::endl;
        // 继续切割剩余的子字符串
        token = wcstok(NULL, L",");
    }

    return 0;
}

输出:

This
is
a
test

在上述示例中,我们首先定义了一个宽字符串str,然后使用wcstok()函数按,分割字符串。在第一次调用wcstok()时,函数会返回第一个子字符串This,然后通过循环继续切割剩余的子字符串,直到遇到分割符","不存在为止。

需要注意的是,在调用wcstok()函数时,需要提供字符串的可修改副本,因为该函数会修改原始字符串。

参考链接