【发布时间】:2014-01-27 01:56:18
【问题描述】:
我目前正在处理一项任务,其中一部分我遇到了麻烦。我需要能够从终端识别 5 种不同的货币符号($、£、¥、€、₹)并将它们打印回来。这是我为完成这部分而分配的功能。 教授们告诉我们,他们每个人都使用 UTF-8 代码组合来识别各个符号。这个函数试图做的就是查看下一个字符是否是符号之一,如果是,则打印该特定符号。如果它不能识别 4 种“外币”中的任何一种,它将默认符号为 $,即使它是数字或不同的符号。感谢您的帮助!
determcur()
{
char c = getchar();
if(c == 0xC2)
{
c = getchar();
if(c == 0xA3)
{
printf("%c%c", 0xC2, 0xA3);
}
if(c == 0xA5)
{
printf("%c%c", 0xC2, 0xA5);
}
}
if(c == 0xE2)
{
c = getchar();
if(c == 0x82)
{
c = getchar();
if(c == 0xAC)
{
printf("%c%c%c", 0xE2, 0x82, 0xAC);
}
if(c == 0xB9)
{
printf("%c%c%c", 0xE2, 0x82, 0xB9);
}
}
}
else printf("%c", 0x24);
}
【问题讨论】:
-
您能解释一下您遇到的问题吗?
-
这是一个问答网站。如果您不提出问题,您将不会得到答案。
-
对不起,我第一次使用这个网站,问题是在输入符号时它无法识别符号,而是总是返回 $。
-
@user3238882:
char是签名的还是未签名的?如果它是有符号的(可能),它如何存储大于 127 的值,它如何等于大于 127 的值(如 0x82,或 0xAC,或...)? -
你应该添加评论并尽可能使用
'<char>',不要使用这样的十六进制代码,没有人会知道你在说哪个字符