-1
#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。「あいさつ」変数のみを出力する必要があるため、 以外のコード//????は変更できません。

4

1 に答える 1

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と、異なる(未定の)値が返されます。標準の追加機能を使用した場合、これは自動的に行われます。

于 2012-05-23T17:43:20.397 に答える