补充一:函数-memcmp()
描述:把两个内存区域的前n个字节进行比较。简单来说就是比较,与strncmp作用一样。
格式:memcmp(aim,str,n)
参数:n是比较两个字符串的前几个字符,起限制的作用。就拿每一个字符串的前n个字符进行比较。
该函数返回值如下:
- 如果返回值小于 0,则表示 aim 小于 str。
- 如果返回值大于 0,则表示 aim 大于 str。
- 如果返回值等于 0,则表示 aim 等于 str。
代码摘自自己写的strncmp的代码:
#include<stdio.h> #include<string.h> int main() { char aim[]={"I study hard yes"}; char str[]={"I study hard"}; int retu; retu=strncmp(aim,str,7); //分别拿aim和str前7个字符进行比较 if(retu<0){ printf("aim小于str"); } else if(retu==0){ printf("aim等于str"); } else{ printf("aim大于str"); } return 0; }
补充二:函数-memmove()
描述:简单来说是复制函数,类似于memcpy,但内存存储方面,memmove()是比memcpy()更安全。
格式:memmove(aim,str,n)
注:如果aim和str没有重叠区域,则和memcpy()的函数功能相同;如果有重叠,memmove()能够保证str在被覆盖之前将重叠区域的字节拷贝到aim中,复制后str区域的内容会被更改。
代码见真知:
#include<stdio.h> #include<string.h> int main() { char aim[]="oldyears"; char str[]="newyears"; memmove(aim,str,3); printf("复制之后:%s",aim); return 0; }
都看到这里了,不坚持下去?
继续哦!
补充三:函数-memset()
描述:此函数的作用是替换或叫覆盖。
格式:memset(aim,c,n)
参数:aim是目标区域;
c是要存放进目标区域的字符;
n是放进字符的个数。
代码安排上:
#include<stdio.h> #include<string.h> int main() { char aim[]="oldyears"; char c='@'; memset(aim,c,3); //将3个c变量中字符替换掉aim数组的前三个 printf("替换之后:%s",aim); return 0; }