S1E13动动手第二题
#include <stdio.h>int main()
{
int ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0');
}
else
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
}
提问:为什么int ch可以通过getchar()接受字符?{:5_104:} 字符实际上是用数字来储存的,如65就是A,规定什么数字代表什么字符的表叫ASCII码表
所以这里可以用int类型来接收字符 临时号 发表于 2022-9-28 22:52
字符实际上是用数字来储存的,如65就是A,规定什么数字代表什么字符的表叫ASCII码表
所以这里可以用int类型 ...
跟函数那些没有关系吗? 首先,char 和 int 都是整型数,只不过二者占用的内存空间有所不同,char 是 8 位,占用 1 个字节,int 是 32 位占用 4 个字节,char 的数值范围是 -128 ~ 127,int 是 - 2147483648 ~ 2147483647,所以,int 的数值范围完全覆盖 char,也就是说,int 对数值的表达能力强于 char,所以,单就用 int ch 接受 getchar() 而言,那是绰绰有余,没有任何问题。 拾荒独酌 发表于 2022-9-28 23:01
跟函数那些没有关系吗?
没有 临时号 发表于 2022-9-28 23:08
没有
谢谢你的答复 jackz007 发表于 2022-9-28 23:08
首先,char 和 int 都是整型数,只不过二者占用的内存空间有所不同,char 是 8 位,占用 1 个字节 ...
谢谢你的回复
页:
[1]