strncmp和strncat库函数的实现。

来源:互联网 发布:百度人工智能研发 编辑:程序博客网 时间:2024/05/18 00:06

strncmp:比较2个字符串中前n个字符的大小,字符串大小的比较是以ASCLL码表上的顺序决定的。

①若str和str1的前n个字符串大小相同,则返回0;

②若str>str1,则返回大于零的值;

③若str<str1,则返回小于零的值;

下面是对库函数strncmp的实现:

#include<stdio.h>#include<assert.h>#include<string.h>int my_strcnmp(const char *str,const char *str1,int n){char *p = (char *)str;char *q = (char *)str1;assert(str);assert(str1);while(n--){if(*p == *q){p++;q++;}else{return (*p - *q);}}return 0;}int main(){char str[]="You are beautiful!";char str1[]="You are great!";printf("%d\n",my_strncmp(str,str1,20));printf("%d\n",strncmp(str,str1,20));//与上面实现的库函数作比较。return 0;}

运行的结果如下:

n为3的时候的运行结果;

n为20时运行的结果:


strncat:在字符串的结尾追加n个字符,从而实现字符串的拼接。
编写的代码如下:
#include<stdio.h>#include<string.h>#include<assert.h>char *my_strncat(char *str,char *str1,int l,int s){char *p = str;char *q = str1;assert(str);assert(str1);while(l--){*p++;}while(s--){*p++=*q++;}return p;}int main(){int len = 0;int sen = 0;char str[100]="How beautiful!";char str1[]="Yeah.";len=strlen(str);my_strncat(str,str1,len,6);printf("%s\n",str);//printf("%s\n",strncat(str,str1,0));return 0;}

运行的结果是:How beautiful!Yeah.


阅读全文
0 0
原创粉丝点击