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

本文介绍了C语言中字符数组的定义、初始化方法,以及常用的字符串处理函数如puts、gets、strlen、strcpy、strcat和strcmp。同时,还涉及了二维数组的概念和操作,包括元素的计算和遍历。
摘要由CSDN通过智能技术生成

1.字符数组的定义

用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。

char a[10]:定义一个长度为10的字符型数组。

注意:c语言中会在字符串末尾加上“\0”作为结束标志,如“ATD138000000\n”的总字节为13+1=14。

2.字符数组初始化

char [10] = {‘H’ , ‘e’ , ‘l’ ,‘l’ , ‘o’};

char [10] ={"Hello"};

char [10] = "Hello";

以上字符串都是6个字节,所以字符型数组是字符串的容器,要提供足够大的空间容纳字符串,长度至少要>=字符串长度。初始化剩下的空间自动补“\0”。

3.字符串处理函数

1.puts函数

puts(s)中s为数组名,数组名为数组首元素地址,puts("1234")指的是首元素“1”的地址。

例如输出char s[10] = "Hello",

2.gets函数

gets不会考虑长度,当输入字符串长度大于数组长度时,会造成越界访问。

而fgets可以考虑长度,其一般形式为:

fgets(s, sizeof(s),stdin)中s为数组名,sizeof(s)为最大字节数,stdin表示键盘输入。

scanf("%s", s)同样也不会考虑长度,而且字符串中若有空格,则会结束输入,如

输入abc def

输出abc

3.strlen函数

统计有效字符个数,要加头文件#include<string.g>

例:

输出为5,strlen函数的原理:

printf()也是将整形、浮点型转化为字符串。

4.strcpy函数

strcpy(s2, s1);中s2为目标,s1为源目标,是指将s1拷贝给s2;原理代码如下:

5.strcat函数

strcat(s1, s2);s1为目标,s2为源目标;将s2连接在s1末尾,其原理代码如下:

6.strcmp函数

strcmp(s1, s2)

printf("%d\n", strcmp(s1,s2))输出的值>0,则字符串s1>字符串s2;

输出的值=0,则字符串s1=字符串s2;

输出的值<0;则字符串s1<字符串s2;

其原理代码如下:


例子:三个数比较

4.二维数组

int a[3][4]表示3行4列个元素,本质是一维数组的数组,即:

3个长度为4的一维数组a[0],a[1],a[2];

初始化:int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}},也可以省略内层{},空的地方补0

省略智能省略靠近变量名的那个。如a[][4]

二维数组的遍历代码:

确定行数:sizeof(a) / sizeof(a[0]) 总元素字节/一行元素字节

确定列数:sizeof(a[0])/sizeof(a[0][0]) 一行元素字节/一格元素字节

二维数组求平均值代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值