strtok_s и заполнение массива

 
0
 
C++
ava
CyberBiber | 26.09.2013, 22:07
Добрый день, ув. форумчане.

Есть такой вот код:

    int i, pr_length;
    WCHAR separators[] = L", ";
    WCHAR *token, *next_token, *massiv[100];
    WCHAR mess[] = L"str1, str2, str3"; // три элемента
    WCHAR buffer[100];

    token = strtok_s(mess, separators, &next_token);
    for(i = 0; token; token = strtok_s(NULL, separators, &next_token), i++)
    {
        massiv[i] = token;
    }

    pr_length = sizeof(massiv)/sizeof(massiv[0]);
    wsprintfW(buffer, L"%d", pr_length);
    MessageBoxW(0, buffer,0,0);

    ExitProcess(0);


Заклинило меня на участке подсчета кол-ва элементов массива. pr_length, по идее, должен составлять 3, но он составляет 100.
Каким образом, можно корректно подсчитать и занести в новый массив все разделенные слова? (чтобы этот массив, совмещал в себе только эти три элемента: типа  WCHAR *massiv[] = {L"str1", L"str2", L"str3"};)
Comments (1)
ava
feodorv | 26.09.2013, 23:43 #
Цитата (CyberBiber @  26.9.2013,  22:07 findReferencedText)
pr_length, по идее, должен составлять 3, но он составляет 100.

По идее, pr_length должен составлять 100, никак не 3:
Цитата (CyberBiber @  26.9.2013,  22:07 findReferencedText)
    WCHAR *massiv[100];

Цитата (CyberBiber @  26.9.2013,  22:07 findReferencedText)
    pr_length = sizeof(massiv)/sizeof(massiv[0]);
  wsprintfW(buffer, L"%d", pr_length);

Чтобы pr_length составляло 3, делайте:

    pr_length = i;
    wsprintfW(buffer, L"%d", pr_length);
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit