这次我们来讲讲库函数trcmp,strstr,strncpy,strncat,memcpy及memmove。
strcmp:
简介:
strcmp函数是c语言中的字符串比较函数,用于判断俩字符串是否一致。
需要包含头文件string.h。
首先看一下strcmp函数在cplusplus官网上的说明:
函数接收两个字符串指针str1和str2,分别为需要比较的字符串的指针。
函数会返回一个整数,若俩字符串相等则返回0;若str1 大于 str2,则返回一个大于0的整形;若str1 小于 str2,则返回一个小于零的整形。
比较原理:
由于字符在计算机中是由ASCII码进行存储的,但是ASCII码又是用数字表示,即strcmp是通过字符的字典序的大小继续比较的,若第一个字符的字典序与第二个字符的字典序相等,则继续比较下一个字符的字典序;反之,返回大小关系。
用法:
char p[6] = "Hello";
char q[6] = "bit";
char a[6] = "Hello";
printf("%d %d", strcmp(p, q), strcmp(p, a));
运行结果:
strcmp使用时注意事项:
1.字符串的比较是按照字典序进行的,因此大小写字母的比较结果不同。
2.在比较字符串时,需要确保字符串以'\0'结尾,否则可能会导致比较结果不正确。
strstr:
简介:
strstr函数是在一个字符串中寻找另外一个字符串的函数。
需要包含头文件string.h。
首先看一下strstr函数在cplusplus官网上的说明:
strstr函数接收两个字符串指针char*,第一个指针指向搜索的区域的字符串(可以理解为全集),第二个指针指向目标的字符串子串(可以理解为子集)。
strstr函数会返回一个字符指针,指向第一次匹配上的目标字符串子串的第一个字母的地址。若没有匹配上,则会返回一个NULL。
用法:
运行结果:
strncpy:
简介:
strncpy函数是将str指向的字符串的前n个字符拷贝至dest指向的内存空间中。
需要包含头文件string.h。
首先看一下strncp函数在cplusplus官网上的说明:
strncpy接收两个字符串指针des和sou和一个整形n。
des表示需要复制到的目标地址的第一个字母处,sou表示被复制的字符串的第一个字符的地址,n则表示需要复制的字符个数。
strncpy的使用注意事项:
1.若sou的字符串长度小于整形n且des的字符串长度大于sou的字符串长度,则会在des字符串中最后一个字符后放一个/0,其余位置使用/0填充。
2.若sou的字符串长度大于整形n,函数则只会拷贝n个字符在des中,但是不会在最后填充一个/0。
memcpy:
简介:
memcpy函数与ctrncpy函数的功能相似。
memcpy函数是将源头指向的内存块拷贝固定字节数的数据到目标指向的内存块。但是memcpy不会对拷入的数据进行检查(例如/0),一律将数据准确的拷贝进入目标地址中。
memcpy函数需要传入两个无符号指针des与sou及一个整形n。
des指向目标被拷贝进入的地址,sou则指向被拷贝的数据的第一个数据的地址,整形n则表示需要拷贝的字节数。
memmove:
简介:
memmove函数是将源地址的n个数据移到到目标地址。
memmove函数需要传入两个无符号指针des和sou及一个整形n。无符号指针des表示数据所要移动到的目标地址,无符号sou表示所要移动的数据的地址,整形n则表示需要移动的字节数。
如果我的文章对你有所帮助,不妨给我个关注何点赞吧