为什么这个程序显示全角符号的asc码都是33?

SHOUYU2 2008-08-26 02:24:15
自己编的程序,想显示各个符号的asc码
但是为什么全角符号的asc码都是33?
全角符号应该没有asc码的啊

#include <stdio.h>
#include <ctype.h>
main()
{
char *ban;
ban="‘";
int s;
s=toascii((int)*ban);
printf("ascii码:%d \n", s);
}
...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SHOUYU2 2008-08-26
  • 打赏
  • 举报
回复
照着5楼的程序运行了一下
#include <stdio.h>
#include <ctype.h>
int main(void)
{
wchar_t *ban;
int s;
ban = L"’";
s=toascii((int)*ban);
printf("ascii码:%d \n", s);
}

有显示legal byte sequence,好像结果也没对
SHOUYU2 2008-08-26
  • 打赏
  • 举报
回复
全角符号的asc码应该是多少呢?
wudeshou82666 2008-08-26
  • 打赏
  • 举报
回复
五楼正解
全角要占两个字节,所以要用wchar_t
SHOUYU2 2008-08-26
  • 打赏
  • 举报
回复
ls的兄弟,ban = L"’";
是不是写错了?
lbh2001 2008-08-26
  • 打赏
  • 举报
回复
lz是要这个吗

#include <stdio.h>
#include <ctype.h>
int main(void)
{
wchar_t *ban;
int s;
ban = L"’";
s=toascii((int)*ban);
printf("ascii码:%d \n", s);
}

全角需要双字节
realdragon2 2008-08-26
  • 打赏
  • 举报
回复
试一下,没有测试.

#include <stdio.h>
#include <ctype.h>
main()
{
char ban='‘';
unsigned char s;
s=toascii(ban);
printf("ascii码:%d \n", (int)s);
}
SHOUYU2 2008-08-26
  • 打赏
  • 举报
回复
ctype.h里面自带的字符函数啊。
用户 昵称 2008-08-26
  • 打赏
  • 举报
回复
ascii码就是字符的值,'1'和31根本就是一个东西。
用户 昵称 2008-08-26
  • 打赏
  • 举报
回复
toascii是什么函数,谁写的?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧