当前位置:首页 > 内存 > 正文

字符型数据在内存中(字符型常量在内存中存放的是什么)

  • 内存
  • 2024-06-27 02:16:29
  • 1860

一、定义一个存储10个字符数据的字符型数组,从键盘输入两个数字,两个小写字母,两个大写字母,程序自动按#include
intmain()
{
charstr[100];
inti=0;
intnum=0,ch=0,blank=0,other=0;
gets(str);
while(str[i]!='\0')
{
if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
ch++;//字母
elseif(str[i]>='0'&&str[i]<='9')
num++;//数字
elseif(str[i]=='')
blank++;//空格
else
other++;
i++;
}
printf("%d个数字,%d个字母,%d空格,%d个其他\n",num,ch,blank,other);
return0;
}
谢谢
二、字符型数据在内存中的存储形式是

字符数据以ASCII码存储在内存中。

这是一个字节。所有数据类型都以二进制代码形式存储在内存中,代码为0和1。这个原则不会改变。

在C语言中,字符数据是将字符常量放入字符变量中。它不是将字符本身放入内存单元,而是放入该字符对应的ASCII码。在存储单元中。

编码时,一个汉字需要2个字节来存储。在UTF-8编码中,存储一个英文字母字符需要1个字节,存储一个汉字需要3到4个字节。在UTF-16编码中,存储一个英文字母字符或一个汉字需要2个字节。在UTF-32编码中,存储世界上任何字符都需要4个字节。

ASCII码的分布

1、0~31、127(共33个)分别是控制字符或通信专用字符(其余为可显示字符),如控制字符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(铃)等等。

通信用特殊字符:SOH(文本头)、EOT(文本结束)、ACK(确认)等。 ;ASCII值8、9、10和13转换为退格键、制表符、换行符和字符输入。它们没有特定的图形显示,但根据不同的应用,会对文本显示产生不同的效果[1]。

2.32到126(共95个)为字符(32为空格),其中48到57为0到9的十个阿拉伯数字。

3.数字65至90为26个大写英文字母,数字97至122为26个小写英文字母,其余为标点符号、算术符号等。



三、c语言中字符串占多少字节?

6字节。

字符数组是指用来存储字符数据的数组。其定义的一般形式为:char数组名[数据长度]。

字符数组用于存储字符或字符串。字符数组中的一个元素存储一个字符,在内存中占用一个字节。在C语言中,字符串被当作字符数组来处理。为了确定字符串的实际长度,C语言指定了一个“字符串结束标志”,其中包含字符“\0”作为最后一个标志。所以这是6个字节。

C语言中没有字符串类型。字符串存储在字符数组中。

扩展信息:

字符数组的输入

1.使用getchar()或scanf()的“%c”。格式将字符分配给字符数组。例如,对于数组a[10]:使用getchar()赋值:

for(i=0;i<10;i++)

a[i]=getchar();

使用scanf()指定值:

for(i=0;i<10;i++)

scanf("%c",&a[我]);

2.使用scanf()的'%s'格式来指定数组中的值。或者对于数组a[10]:

scanf("%s",a)或scanf("%s",&a[0]);

输入“Cprogram”并且当你按Enter键时,数组将自动包含一个以“\0”结尾的字符串“cprogram”。

参考资料:

-汉字表