Добавление 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 они или нет.)