一、string.c里相关函数介绍
string.h里主要包含了C语言对字符串操作的相关函数,这篇文章就介绍几个比较常用的 函数重新自己实现。并且每个函数给出了2种以上的不同写法,全部采用指针方式;在学习C语言过程中,重写这些字符串处理函数可以快速提升、磨练自己的指针、数组、函数相关知识,对学习是非常有帮助的;在单片机、嵌入式开发中,也会经常需要自己实现这些函数,可能有些功能系统函数不能满足的情况下,都需要自己重新实现。
二、重写函数介绍
2.1 strcmp : 字符串比较
字符串比较函数,用来比较两个字符串是否相等,下面给出了4种写法,其中一个是strncmp函数。
代码语言:javascript复制int strcmp(const char *str1, const char *str2)
{
const unsigned char *s1 = (const unsigned char *)str1;
const unsigned char *s2 = (const unsigned char *)str2;
int delta = 0;
while (*s1 || *s2) {
delta = *s2 - *s1;
if (delta)
return delta;
s1 ;
s2 ;
}
return 0;
}
int strncmp(const char *cs, const char *ct, size_t count)
{
unsigned char c1, c2;
while (count) {
c1 = *cs ;
c2 = *ct ;
if (c1 != c2)
return c1 < c2 ? -1 : 1;
if (!c1)
break;
count--;
}
return 0;
}
int strcmp(const char *a, const char *b)
{
while (*a || *b) {
if (*a != *b)
return 1;
if (*a == 0 || *b == 0)
return 1;
a ;
b ;
}
return 0;
}
int strcmp(const char *cs, const char *ct)
{
unsigned char c1, c2;
int res = 0;
do {
c1 = *cs ;
c2 = *ct ;
res = c1 - c2;
if (res)
break;
} while (c1);
return res;
}
2.2 strlen: 字符串长度介绍
strlen是计算字符串长度的函数,比较常用,代码也最简单,下面写了两种实现方法。
代码语言:javascript复制size_t strlen(const char *s)
{
const char *sc = s;
while (*sc != '