Добавление crlf в WCHAR * в VC++ 2005

Это VC++ 2005: Как я могу добавить WCHAR * "firstText" и другой WCHAR * "secondText" в другой WCHAR * "thirdText" с CRLF "\r\n" между ними?

WCHAR firstText [100] = L"First line";

WCHAR secondText [100] = L"Second line";

WCHAR thirdText [500] = L"";

Ваша помощь высоко ценится!

1 ответ

Решение

Вы можете сделать то же самое, что и со строками, отличными от W, но с использованием широкоформатных версий функций, например (непроверенных)

int thirdTextMax = (sizeof(thirdText)/sizeof(thirdText[0]));
swprintf(thirdText, thirdTextMax, L"%s\r\n%s", firstText, secondText);

или же

int firstTextLen = wcslen(firstText);
wcsncpy(thirdText, firstText, thirdTextMax);
wcsncpy(thirdText + firstTextLen, L"\r\n", thirdTextMax - firstTextLen);
wcsncpy(thirdText + firstTextLen + 2, secondText, thirdTextMax - firstTextLen - 2);

(Существуют также версии этих функций _s для особой осторожности при переполнении буферов, но я не могу вспомнить, в VC2005 они или нет.)

Другие вопросы по тегам