【发布时间】:2018-07-14 18:42:07
【问题描述】:
我想编写一个程序,如果用户输入 3s,程序可以在控制台中打印字符“????”,输入 kh 输出“????”,输入 10c 输出“??? ?”等等。我有一个来自This Wikipedia page 的 unicode 列表。
#include <stdio.h>
#include <string.h>
typedef struct card {
int val;
char suite;
} card;
void Take(card myCard[]);
void Display(card Cards[], int num);
void main()
{
card myCards[13];
int remaining = 13;
printf("Enter you cards:");
Take(myCards);
printf("Your cards are:");
Display(myCards, remaining);
while(remaining > 0)
{
remaining--;
}
}
void Take(card myCard[])
{
int i;
for(i = 0; i < 13; i++)
scanf("%d%c", &myCard[i].val, &myCard[i].suite);
}
void Display(card cards[], int num)
{
char unicode[7];
int i = 0;
for(i = 0; i < num; i++)
{
strcpy(unicode, "\u1F0");
switch(cards[i].suite)
{
case 's':
strcat(unicode, "A");
break;
case 'h':
strcat(unicode, "B");
break;
case 'b':
strcat(unicode, "C");
break;
case 'c':
strcat(unicode, "D");
break;
}
switch(cards[i].val)
{
case 10:
strcpy(unicode, "A");
break;
case 11:
strcpy(unicode, "B");
break;
case 12:
strcpy(unicode, "D");
break;
case 13:
strcpy(unicode, "E");
break;
default:
break;
}
printf("%s\t", unicode);
}
}
unicode 中有一个模式为 \u1f0XY,其中从 A 到 D 的 x 更改套件,从 1 到 E 的 Y 更改卡的值。我的方法是创建一个名为 Unicode 的字符串,其初始值为“\u1f0”。然后根据卡片是什么套件,我将在字符串后面附加正确的 x,然后根据值,我将在 Unicode 字符串后面加上正确的 y。 也就是说,我的方法是创建一个变量字符串,其中包含要打印的字符串的正确 Unicode。但是我收到了这个错误
错误:不完整的通用字符名称 \u1F0 strcpy(unicode, "\u1F0");
我怎样才能正确地创建一个变量 Unicode,还是我想的那样不可能?
【问题讨论】:
-
Unicode 字符语法 os 是一个小问题,您可能需要跳过更多的环节。你在哪个平台上?