C语言中数组以及处理字符串的函数

概述

主要是介绍了:

一维数组
二维数组
字符数组

一维数组

(1)如何定义

类型符 数组名[常量表达式]
如:int a[10] 定义一个数组名是a,大小是10的int型数组。

(2)如何引用

通过 数组名[常量表达式] 表示第几个位置上得数。
int b[3] = {3,4,5};
如上方式完成了数组的定义并赋予初值。
也可以:
int c[10] = {0,1,6};
这样,没有赋值的区域,默认赋值为0;(如果是字符型数组,则初始化为‘\0’,如果是指针性数组,
则初始化为NULL,即空指针)
也可以:
int d[] = {4,5,6}; 这样定义的数组就是长度为3了。

二维数组

如何定义

类型说明符 数组名[常量表达式][常量表达式]

如何引用

数组名 [下标][下标]
需要注意的是下标应该是整数,不应该是表达式。

如何初始化

int a [2][2]= {{3,4},{5,6}}
{3,4}赋值给第一行上,
{5,6}赋值在第二行上,这个数组表示的是两行两列。

字符数组

C语言中没有字符串类型,字符串是存放在字符型数组中的。
字符数组,是用来存放字符的,那么里面一个元素存放一个字符。
因为字符型数据是通过整数形式(ASCII)存放的,因此可以用整型数组来存放字符数据。

字符数组的初始化

char c[5] = {‘a’,’b’,’c’,’d’,’e’};

如何表示字符串

字符串中的字符是逐个存放到数组元素中的。
C系统在用字符数组存储字符串常量的时候自动加一个‘\0’作为结束符。
通过检验’\0’的位置来判定字符串是否结束。在输出时候,也是到’\0’时候结束。
有’\0’的地方,前面的字符组成一个字符串。

字符数组的输入输出

(1)逐个字符输入输出,用格式符%c输入输出一个字符
(2)将字符串一次输入或输出,用%s格式符,

char c [] = {“China”};
printf(“%s”,c);

(3)如果数组长度大于字符串的实际长度,也只输出到’\0’结束。

char c[20] = {“sss”};
printf(“%s”,c);
因为在c语言中,字符数组未初始化地方,默认初始为’\0’。

(4)

char str[10];
scanf(“%s”,str);
printf(“%s”,str);
在调试框中,输入hello ,就好了,默认的就存在了数组str 中 了。
需要注意,在输入时候,str前面没有&,这是因为,数组名就是内存地址了。

处理字符串中函数

puts函数

输出字符串的函数。
作用是,将一个字符串输出到终端,只需要:puts(str);
str是一个字符数组。

gets函数

从终端输入一个字符到字符数组中,并且得到衣蛾函数值。该函数值就是字符数组的起始地址。
一般是用gets 函数是向字符数组输入一个字符串,而不关心其函数值。
gets(str);也是放在了一个字符数组中。

starcat字符串连接函数

作用:把两个字符数组中的字符串连接起来。
starcat(字符数组1,字符数组2);
把字符串2 接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值,也就是字符数组1的
地址。
那么需要字符数组1必须足够大,连接前两个字符串后面都有’\0’。

strcpy 函数

将字符串复制到字符数组1中、
strcpy(字符数组1,字符串);
strcpy(字符数组1,字符数组2)
要求:
字符数组1 足够大,在这里使用时候,用数组名就可以。
(1)如果在复制前,没有对数组进行初始化或者赋值,则数组中内容是无法预知的,会将字符数组2中的‘\0’
一起复制到数组1中的字符。
(2)
C中不允许一个字符数组赋值给另一个字符数组。
C中不允许一个字符串常量直接赋值给另一个字符数组。
(3)
strncpy(str1,str2,2);
将str2中最前面的2个字符复制到str1中,取代str1中原有的最前面的两个字符。不包括’\0’

strcmp函数

这是字符串比较函数:
比较两个字符串,规则是将两个字符串从左到右逐个比较(按照ASCII码进行比较),知道出现不同的字符或者
‘\0’
所以这个比较:
字符串1 = 字符串2,则函数值为0;
字符串1>字符串2,则函数值是一个正整数;
字符串1 <字符串2,则函数值是一个负整数。

所以两个字符串比较不能以>、<来比较。

strlen函数

strlen(字符数组);
测试字符串长度的函数。是实际长度,不包含’\0’在内

strlwr 函数

转换为小写函数
strlwr(字符串);
将字符串中大写字母换成小写字母

strupr 函数

转换大写函数

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值