当前位置:首页 > 测评资讯 > 正文内容

数组是如何存储字符的?C语言中字符数组只能存放字符串

一、C语言中字符数组只能存放字符串

不是的,C语言中字符数组既可以保存字符,又可以保存字符串。

字符数组本意就是是指用来存放字符数据的数组。字符数组的元素是字符类型的。字符数组用于存放字符或字符串。

C语言中字符数组的一般形式为: char数组名[数据长度]。例如:char a[10]; a[0]='0'; a[1]=' 1'; a[2]='2'; a[3]='3'; a[4]='4'; a[5]='5'; a[6]=' 6'; a[7]='7'; a[8]='8'; a[9]='9';就定义了a为字符数组,包含10个"0"到“9”的字符元素。

因此,C语言中字符数组不单单只能保存字符串。

扩展资料:

字符数组的初始化:

字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。

用字符常量逐个初始化数组。例如:char a[8]={'i','l','o','v','e','y','o','u'};把8个字符依次分别赋给c[0]~c[7]这8个元素。

如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')。

参考资料来源:百度百科-字符数组

二、如何在一个数组中存储一个字符串的长度

可以将整数当做字符串(字符串长度不超过10)接收,然后反向输出字符数组元素即可。

字符串实际长度可以用strlen函数来计算。

方法程序如下:

#include<stdio.h>

#include<string.h>

main()

{char a[10];int i,j;

scanf("%s",a);

j=strlen(a);

for(i=j-1;i>=0;i--)

printf("%c",a[i]);

printf("\n");}

扩展资料:

C语言高效编程技巧:

一:以空间换时间

计算机程序中大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:数学方法解决问题

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方**对程序的执行效率有数量级的提高。

三:使用位*作

实现高效的C语言编写的第三招----使用位*作,减少除法和取模的运算。

在计算机程序中,数据的位是可以*作的小数据单位,理论上可以用“位运算”来完成所有的运算和*作。一般的位*作是用来控制硬件的,或者做数据变换使用,但是,灵活的位*作可以有效提高程序运行的效率。

参考资料来源:百度百科-C语言

三、字符串是怎么存到数组中的

1. java中定义一个字符串数组方式如下,string类型和其他基本类型相似,创建数组有两种方式:

String[] str={"AAA","BBB","CCC"};

String str[]={"AAA","BBB","CCC"};

2.推荐用ArrayList<String> strArray= new ArrayList<String>();比较灵活。

3.也可以写为如下格式:class[] array; array= new class[number];其中前半句为声明,后半句为初始化,初始化必须要让编译器知道大小,声明的时候java是不分配内存的,只有创建的时候也就是new的时候才会分配内存。

扩展资料:

1.数组是相同数据类型的元素的**。

2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

4.对于VB的数组,表示数组元素时应注意:下标要紧跟在数组名后,而且用圆括号括起来(不能用其他括号)。下标可以是常量,变量,或表达式,但其值必须是整数。下标必须为一段连续的整数,其小值成为下界,其大值成为上界。不加说明时下界值默认为1。

参考资料:字符数组_百度百科

四、C语言在数组中储存字符

性质都一样,在c语言中字符数组就是字符串。strcpy和strncpy用途是一样的,后者限制了拷贝字符的长度,超过长度将丢弃不拷贝。比如有a1[5],a2[]="123456",strncpy(a1,a2,5),后a1就是"12345"了,因为限制了拷贝5个长度,后面多出的就被丢弃了。而strcpy做不到这一点,它会没有限制地拷贝,如果超出数组所能容纳的长度,多余的就会溢出到内存中。所以说strncpy是strcpy的安全模式。

最新发布