在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、strcmp和strncmp的编程实现及总结 1、strcmp函数的实现
要求:
原型: int strcmp(char *dest,char * src,int n);
头文件:#include <string.h>
功能:比较字符串s1和s2。
说明: 返回值:当s1<s2时,返回值<0 返回值:当s1=s2时,返回值=0 返回值:当s1>s2时,返回值>0 mystrcmp代码实现:
int mystrcmp(const char *dest,const char *src) { int i=0; //判断str1与str2指针是否为NULL,函数assert的头文件为#include<assert.h> assert(dest!=NULL && src !=NULL); //[1] //如果dest > source,则返回值大于0,如果dest = source,则返回值等于0,如果dest < source ,则返回值小于0。 while (*dest && *src && (*dest == *src)) { dest ++; src ++; } return *dest - *source; [2] } 注意:
代码[2]:为了优化代码,此代码中返回正数代表1,返回负数代表-1
2、strncmp函数的实现
要求:
原型:extern int strcmp(char *s1,char * s2);
用法:#include <string.h> 功能:比较字符串s1和s2的前n个字符。 说明: 返回值:当s1<s2时,返回值<0 返回值:当s1=s2时,返回值=0 返回值:当s1>s2时,返回值>0 strncmp代码实现:
int strncmp(const char *s1, const char *s2, size_t len) { //判断str1与str2指针是否为NULL assert(s1!=NULL && s2 !=NULL); while(len--) { if(*s1 == 0 || *s1 != *s2) return *s1 - *s2; s1++; s2++; } return 0; } 注意:注意事项同上,不过需要在上面的基础上添加一步 长度N的判断 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论