问题一:我像这样定义一个数组,并用%s输入,那么输入123#46之后,它占了char数组20个数里的六个位置是嘛?
问题二:如果是这样的话,那么123#46它们在计算机里存储的二进制数值 分!别 !是多少呢?因为数字也没有ascll码啊?这个问题困扰我这个大一新生好久了,求解!
1、因为输入的字符串"123#46"每个字符都存储到字符数组,六个字符,所以占用了六个位置;
2、"123#46"存储在计算机的二进制分别是它们ASCII码对应的二进制,数字有对应的ASCII码。
ASCII码对照表-完整ASCII码表-我就查查询
ASCII码表包含有ASCII打印字符对照表、ASCII控制字符对照表以及ASCII扩展字符对照表。
http://ascii.wjccx.com/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
char a[20];
char result[20];
scanf("%s",a);
for(int i=0;i<strlen(a);i++){
// https://blog.csdn.net/qq_42410605/article/details/101927277
// https://blog.csdn.net/zggzgw/article/details/53710822
itoa(a[i],result,2);
printf("a[%d]=%c,ASCII码为:%d,对应的二进制为:%s\n",i,a[i],a[i],result);
}
printf("%s",a);
return 0;
}