【C语言学习笔记】:字符数组

本文介绍了C语言中字符数组的定义、初始化以及引用元素的方法。字符数组用于存储字符数据,字符串在C语言中被视为字符数组处理,以作为结束标志。文中还提到了C语言中处理字符串的一些常用函数,如puts、gets、strcpy、strcmp等,以及如何使用这些函数进行字符串的输出、输入、复制和比较。此外,还展示了字符数组的案例,包括定义、初始化和输出数组元素。
摘要由CSDN通过智能技术生成

C语言字符数组的定义

字符数组是用来存放字符数据的数组,字符数组中的一个元素存放一个字符,定义字符数组的方法和定义数值型数组的方法类似。

//例子:

char character[10];

C语言字符数组的初始化

C语言对字符数组初始化,最容易理解的方式是用“初始化列表”,把各个字符依次赋给数组中各元素。

如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。

//例子:把10个字符依次分别赋给c[0]~c[9]这10个元素。

char c[10]={'I',' ','a','m',' ',' h','a','p','p','y'};

C语言引用字符数组中的元素

可以引用字符数组中的一个元素,得到一个字符。

C语言字符串和字符串结束标志 

在C语言中,是将字符串作为字符数组来处理的,字符串中的字符是逐个存放到数组元素中的。

为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符‘\0’作为结束标志。

C系统在用字符数组存储字符串常量时会自动加一个'\0'作为结束符。

‘\0’代表ASCII码为0的字符,从ASCII码表中可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做。

字符数组并不要求它的最后一个字符为'\0',甚至可以不包含'\0'。

C语言字符数组的输入输出

字符数组的输入输出有两种方法。

  • 逐个字符输入输出。用%c输入或输出一个字符。

  • 将整个字符串一次输入或输出。用%s格式符,意思是对字符串的输入输出。

输出的字符中不包括结束符“\0”。

用%s格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。

如果数组长度大于字符串的实际长度。也只输出到遇“\0”结束。

如果一个字符数组中包含一个以上“\0”,则遇第一个“\0”时输出就结束。

可以用scanf函数输入一个字符串。

C语言字符串处理函数

1、puts函数——输出字符串的函数

一般形式;

puts(字符数组)

作用:将一个字符串输出到终端。

2、gets函数——输入字符串的函数

一般形式:

gets(字符数组)

作用:从终端输入一个字符串到字符数组,并且得到一个函数值。

3、注意:用gets和puts函数只能输出或输入一个字符串。

4、stract函数——字符串连接函数

一般形式:

stract(字符数组1,字符数组2)

作用:把两个字符数组中的字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。

5、strcpy和strncpy函数——字符串复制函数

一般形式:

strcpy(字符数组1,字符串2)

作用:将字符串2复制到字符数组1中去。

6、strcmp函数——字符串比较函数

一般形式:

strcmp(字符串1,字符串2)

作用:比较字符串1和字符串2,将两个字符串自左向右逐个字符相比,直到出现不同的字符或遇到“\0”为止。如果全部字符相同,则认为两个字符串相等:若出现不相同的字符,则以第1对不相同的字符的比较结果为准。

7、strlen函数——测字符串长度的函数

一般形式:

strlen(字符数组)

作用:测试字符串长度的函数。函数的值为字符串中的实际长度。

8、strlwr函数——转换为小写的函数

一般形式:

strlwr(字符串)

作用:将字符串中的大写字母换成小写字母 。

9、strupr函数——转换为大写的函数

一般形式:

strupr(字符串)

作用:将字符串中小写字母换成大写字母。

C语言字符数组案例

#include<stdio.h>//头文件
int main() //主函数
{
  char array[3]={'A','b','c'};//字符数组定义和初始化
  printf("%c\n",array[1]);
  return 0;//主函数返回值为0
}

编译运行结果:

b

--------------------------------
Process exited after 0.1225 seconds with return value 0
请按任意键继续. . .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜子牙大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值