C语言数组和字符串函数

C语言数组和字符串函数

一、数组概述

构造数据类型之一;数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素;数组中各元素的数据类型要求相同,用数组名和下标确定;数组可以是一维的,也可以是多维的。

1、一维数组

所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的;C语言中,一维数组的说明一般形式为:<存储类型> <数据类型 > <数组名>[常量表达式] ;

注:C语言对数组不作越界检查,使用时要注意;数组名表示内存首地址,是地址常量;sizof(数组名)是数组占用的总内存空间;未使用static修饰的数组不初始化值,其元素值为随机数;对static数组元素不赋初值,系统会自动赋以0值;可以只给部分数组元素赋初值,未赋值部分其值不确定。

2、二位数组

二维数组的定义一般形式为:数据类型 数组名[常量表达式][常量表达式];

注:二位数组元素的存放是按行序优先、顺序存放的,因为内存是一维的。具有两个或两个以上下标的数组称为多维数组。

3、字符数组

字符数组是元素的数据类型为字符类型的数组。

字符数组的初始化:逐个字符赋值;用字符串常量。

C语言中无字符串变量,用字符数组处理字符串,字符串结束标志:‘ ’。

4、字符串函数

C库中实现了很多字符串处理函数

#include <string.h>

a、常见的字符串处理函数:

求字符串长度的函数strlen,不包括‘ ’在内

字符串拷贝函数strcpy,返回字符数组1的首地址,字符数组1必须足够大‚拷贝时‘ ’一同拷贝

字符串连接函数strcat,返回字符数组1的首地址,字符数组1必须足够大‚连接前,两串均以‘ ’结束;连接后,串1的 ‘ ’取消,新串最后加‘ ’

字符串比较函数strcmp,对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘ ’为止,返回int型整数,若串1<串2,返回负整数;若串1> 串2,返回正整数;若串1== 串2, 返回零。

b、字符串处理函数

strncpy(p, p1, n) 复制指定长度字符串

strncat(p, p1, n) 附加指定长度字符串

strcasecmp忽略大小写比较字符串

strncmp(p, p1, n) 比较指定长度字符串

strchr(p, c) 在字符串中查找指定字符

strstr(p, p1) 查找字符串

isalpha() 检查是否为字母字符

isupper() 检查是否为大写字母字符

islower() 检查是否为小写字母字符

isdigit() 检查是否为数字