C语言数组与字符串

一、c语言数组

1.C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组可以用一些基本的数据类型来定义,int,double,float...,比如,定义一个整形数组  int a[10],a为数组名,a数组成员共有10个,访问数组可以运用下标访问,数组成员依次为a[0]........a[9]。

2.数组的初始化

比如int a[5]={1,2,3,4,5};大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。int a[]={1,2,3,4,5};这时候计算机会计算出[]里的数值。

 

3.数组的所有数据都是由连续的内存位置组成,每个数组成员都有一块内存,它们的大小取决于数组类型,比如,开始定义的int型数组每个数组成员所占内存的大小都为4个Byte,即整形数组a[10]所占的内存的大小为40Byte。

4.数组在处理一些同种数据类型是就比较方便,比如处理一个班所有学生的一项成绩,这时候用数组就比较方便,下面是对一组数据的排序

5.c语言存在多维数组,上面说的都是一维数组,多维数组可以这样定义,比如定义二维整形数组a[3][3],初始化:{{1,2,3},{4,5,6},{7,8,9}};基本上数组通过循环来进行定义比较方便。多维数组的访问也是用过下标来进行。比如下面:

二、字符串

1.在 C 语言中,由但撇号括起来的单个字符叫字符常量,例如'a','b','+','%'...,由双撇号括起来的叫字符串常量,例如"abc","你好",而字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。下面声明和初始化一个"Hello"的字符串,由于在数组的末尾储存了空字符,所以字符数组的大小比字符"Hello"的字符数多一个。

char a[6]={'H','e','l','l','o','\0'};

也可以这样初始化:c编译器会在字符串初始化时自动把'\0'放在字符串的末尾。

char a[6]="Hello";

一个字符在内存中占一个字节,字符串里的内存也是连续的,由于字符串末尾会有'\0',所以计算字符串的内存大小时会多一个字节,即上面的字符串a占6个字节。

2.c语言中有一些操作字符串的函数

这些函数都包含在string.h的头文件中

  1. strcpy(s1,s2)//复制字符串s2到字符串s1
  2. strcat(s1,s2)//连接字符串s2到字符串s1的末尾,注意字符串s1的长度要足够大来连接字符串s2
  3. strcmp(s1,s2)//用于比较两个字符串,若s1=s2,则返回0,若s1>s2,则返回>0,若s1<s2,则返回<0
  4. strlen(s1)//返回字符串s1的长度

具体例子如下:

3.sizeof()与strlen()的区别

strlen是一个函数,它计算的是字符串的长度,以'\0'作为长度判断的标志,而sizeof是一个运算操作符,计算的是变量的大小,不受'\0'的影响。

4.'a'与"a"的区别在于' '里只能放单个字符,而" "表示一个字符串即'a'+'\0'。字符串在如下的方式初始化时需要注意结尾必须加'\0',不然就会程序就会出现错误,而用第二种方式不需要加'\0'。

char a[]={'h','e','l','l','o','\0'};
char a[]={"hello"};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值