c语言字符串功能,快速入门系列-C语言字符串处理功能(1)

f8afb3e9da20b20614cfee36919f0d27.png

C语言中常用的C字符串操作函数,例如整体操作函数,例如计算字符串的长度,复制字符串,比较字符串等,还有字符串查询功能,也有字符串转换功能等等,这里首先介绍字符串的整体操作功能.

b256fd0baffa104da13585742e50f28c.png

字符串的整体运算功能

在实际编程中,我们经常遇到诸如对字符串的整体控制之类的操作,例如长度测量函数strlen(),字符串复制函数strcpy()/ strncpy(),字符串比较函数strcmp()/ strncmp(),字符串串联函数strcat()/ strncat()等. 这些功能非常有用.

1,晕眩

原型: int strlen(const char * str)功能: 返回字符串的实际长度c语言字符串个数,不包括'\ 0'.

01300542845232141407228248274.jpg

6cdf42a2fdb82d2754b9fc06b1781ca6.png

strlen不包含'\ 0'的原因是因为它在计数末尾遇到了'\ 0'.

838bb74248c2f5a1525e1dfc1b6597dd.png

注意: sizeof与strlen不同. 如前所述,sizeof不是函数,我们定义一个变量,使用sizeof计算定义的变量占用的内存大小,并且遇到'\ 0'时不会结束; strlen是测试字符字符串的实际长度. 如果char buf [100] =“ abc”;那么sizeof(buf)为100,strlen(buf)为3.

2,strcpy / strncpy

1,strcpy

edeb41456bd4b56923f4baee684f5aa8.png

原型: char * strcpy(char * dest,const char * src)函数: 将以src指向的'\ 0'结尾的字符串复制到dest(strncpy,这意味着仅复制前一个n)指向的数组. 值: 目标字符串的返回参数起始地址

1b0917635765aad85ba848b3a0efc19a.png

应注意,strcpy()在遇到'\ 0'并且包含'\ 0'时将结束.

5623eb06249f92a499a0ecdd0c389d8f.png

2,strncpy

原型: char * strncpy(char * dest,const char * src,size_t n)功能: 将参数src字符串的前n个字符复制到参数dest指向的地址中返回值: 返回参数的开头目标字符串地址

10241f268bf432bd39f69400ee4b941b.png

e05b6816860eb99650c0e3f0bb39281c.png

注意: strncpy()遇到'\ 0'的结尾,并且当数字n不足时将用'\ 0'填充. 如上例所示,将数组src中字符串的4个字节复制到数组dest,然后将dest结果打印为“ h”. 这是否意味着strncpy遇到“ \ 0”结尾?仅在这里解释是不够的c语言字符串个数,可能是strncpy或printf. 查看第二个输出,我们将分别输出dest中的元素: “ h 56789”,中间有3个空字符(即'\ 0'),显然,我们复制了4个字节,但是'e'和尚未复制'0'之后的'l',并且以下三个字节以空字符完成,这表明strncpy遇到'\ 0'的末尾并且数字n不足. 下次将用'\ 0'填充.

strcmp / strncmp

原型: int strcmp(char * str1,char * str2)函数: 比较str1和str2的大小;返回值: 返回0等于相等,str1大于str2返回1,str1小于str2返回-1;

ad1aa13e04636323a6657b495c258eee.png

对比ASICS代码表,可以看出'A'为65而'a'为97. 由于s1和s2相同,比较结果为0,s3大于s1,因此比较结果为1,并且s1小于s3,因此比较结果为-1.

f6c4bdb5084edd83a8f1ad02ebae7ca4.png

strcat / strncat

原型: char * strcat(char * dest,const char * src)功能: 将参数src字符串复制到参数dest指向的字符串的末尾. 返回值: 返回参数dest的字符串起始地址

3fe8d2da9b1caf58af9c3bc7c89d97b7.png

注意: 第一个参数dest必须具有足够的空间来容纳要复制的字符串. 如上例所示,s1不能写为char s1 [] =“ AAA”; 'A','A','A','\ 0'),如果将s2附加到s1的末尾,则会由于s1中的空间不足而发生错误.

e7f693f80151c3ed3056105fd0e59bb8.png

好的,就是这样,有足够的时间来跟踪字符串查询功能和字符串转换功能了.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-225040-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值