WCharToCharSafe

#include <Windows.h>

SIZE_T WCharStringToCharString2(PCHAR Destination, PWCHAR Source, SIZE_T MaximumAllowed)
{
	SIZE_T Index = 0;

	for (; Index < MaximumAllowed - 1 && Source[Index]; ++Index)
	{
		WCHAR IndividualCharacter = Source[Index];

		if (IndividualCharacter > 0x7f)
			Destination[Index] = '?';
		else
			Destination[Index] = (CHAR)IndividualCharacter;
	}

	Destination[Index] = '\0';

	return Index;
}

INT main(VOID)
{
	WCHAR String1[] = L"I like cats a lot";
	CHAR String2[256] = { 0 };
	SIZE_T Length = 0;

	Length = WCharStringToCharString2(String2, String1, 256);

  return ERROR_SUCCESS;
}

Last updated