Использование wmemset в c ++ - PullRequest
       3

Использование wmemset в c ++

1 голос
/ 19 января 2010

При использовании wmemset api (http://msdn.microsoft.com/en-us/library/1fdeehz6(VS.80).aspx) для параметра count мне нужно умножить длину целевой строки на 2 и предоставить или wmemset сам позаботится о преобразовании?

Ответы [ 2 ]

3 голосов
/ 19 января 2010

Ответ - нет. У них есть пример на странице, на которую вы ссылались :

#include <wchar.h>
#include <stdio.h>

int main( void )
{
    wchar_t buffer[] = L"This is a test of the wmemset function";

    wprintf( L"Before: %s\n", buffer );
    wmemset( buffer, '*', 4 );
    wprintf( L"After:  %s\n", buffer );
}

Выход:

Before: This is a test of the wmemset function
After:  **** is a test of the wmemset function

Конечно, в месте назначения должно быть достаточно места (sizeof(wchar_t), умноженное на количество символов, в которые записывается).

1 голос
/ 19 января 2010

Нет, не стоит. Длина указана в строковых символах (wchar_t), а не в байтах (char). Вам необходимо передать количество широких символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...