#ifndef UNICODE
#define UNICODE
#endif
#include <stdio.h>
#include <Windows.h>
int main(void)
{
TCHAR greeting[50] = L"Hello world";
TCHAR exclamation=L'!';
//????
wprintf("%s",greeting);
return 0;
}
应该做什么,以便输出会带有感叹号问候?指令
greeting[wcslen(greeting)]=exclamation;
用汉字完成数组的剩余部分
PS。我只需输出“greeting”变量,因此//????
以外的代码是不可更改的。
答案 0 :(得分:3)
在greeting[wcslen(greeting)]
处有一个空终止符L'\0'
,表示字符串的结尾。除了这一点之外还有什么是未定义的(中文字符似乎在你的情况下)。你需要做的是将这样的空终止符移动到数组中的下一个位置。
TCHAR greeting[50] = L"Hello world";
TCHAR exclamation=L'!';
greeting[wcslen(greeting)+1] = L'\0';
greeting[wcslen(greeting)] = exclamation;
请注意,您必须按此顺序执行此操作,否则wcslen
将提供不同的(不确定的)值。如果您使用了标准追加功能,那么这将为您完成。