C ++ wcstok () - C ++ стандартна библиотека

Функцията wcstok () в C ++ връща следващия маркер в нулев прекратен широк низ.

Функцията wcstok () е дефинирана в заглавния файл.

прототип на wcstok ()

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

Функцията wcstok () взема три аргумента: str, delim и ptr. Тази функция намира маркера в широкия низ, посочен от str. Разделителят на показалеца сочи към разделителните знаци.

Тази функция може да бъде извикана няколко пъти за получаване на жетони от един и същ широк низ. Има два случая:

  1. Ако str не е NULL:
    Извикване на wcstok () се счита за първо извикване за този широк низ. Функцията търси първия широк символ, който не се съдържа в delim. Ако не бъде намерен такъв широк символ, широкият низ не съдържа никакъв маркер. Така се връща нулев указател.
    Ако се намери такъв широк символ, оттам нататък функцията търси широк символ, който присъства в delim. Ако не е намерен разделител, str има само един маркер. Ако се намери разделител, той се заменя с L ' 0' и указателят към следния символ се съхранява в * ptr. И накрая, функцията връща указателя към началото на маркера.
  2. Ако str е NULL:
    Повикването се счита за последващи повиквания към wcstok и функцията продължава от мястото, където е оставена при предишно извикване със същия * ptr.

wcstok () Параметри

  • str: Указател към нулевия прекратен широк низ за токенизиране.
  • delim: указател към завършения с нула широк низ, който съдържа разделителите.
  • ptr: Показалец към указател към широк символ, който се използва от wcstok за съхраняване на вътрешното му състояние.

wcstok () Върната стойност

  • Функцията wcstok () връща показалеца към началото на следващия маркер, ако има такъв
  • Той връща NULL, ако не бъдат намерени повече маркери.

Пример: Как работи функцията wcstok ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"parrot,owl,sparrow,pigeon,crow"; wchar_t delim() = L"u002c";// unicode for comma wchar_t *ptr; wcout << L"The tokens are:" << endl; wchar_t *token = wcstok(str,delim,&ptr); while (token) ( wcout << token << endl; token = wcstok(NULL,delim,&ptr); ) return 0; )

Когато стартирате програмата, изходът ще бъде:

 Жетоните са: папагал сова врабче гълъб врана

Интересни статии...