首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从ASCII代码获取不同的值

从ASCII代码获取不同的值
EN

Stack Overflow用户
提问于 2012-02-17 09:25:07
回答 2查看 208关注 0票数 0

我有一个应用程序,它提示用户输入来自user的字符:

代码语言:javascript
运行
复制
char letter;
printf("Letter:\n");
scanf("%s", &letter);
printf("ASCII code = %d\n", letter);

问题在于用户会写的口音。如果输入是上面给出的ASCII码= -61的代码,那么我想,如果我把它变成一个正数,我就得到了61,它在ASCII码中是Aprintf("ASCII code = %d val = %c\n", letter, abs(letter));

但它并没有像预期的那样工作,它给了ASCII code = -61 val =而不是A,为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-17 10:25:14

Á的ASCII码为193。

char的范围是-128到127。unsigned char的范围是0到255。

您的代码的问题在于您使用的是带符号的字符,而不是无符号的字符。当您输出有符号字符时,它会将letter符号扩展为一个整数并将其输出。如果你使用无符号变量,你会得到正确的输出。

票数 0
EN

Stack Overflow用户

发布于 2012-02-17 09:26:09

%s是C字符串的格式说明符,一个字符只能容纳一个空的C字符串。使用%c,它是单个字符的格式说明符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9321664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档