strcmp
函数原型:int _strcmp(const char* dest, const char* src)
函数功能:比较字符串dest和src。
函数说明:
当dest< src时,返回值 < 0
当dest= src时,返回值 = 0
当dest> src时,返回值 > 0
函数实现:
int _strcmp(
const char* dest,
const char* src)
{
assert(dest !=
nullptr&&src !=
nullptr);
//判断dest指针和src指针是否为空,若为空抛出异常
while (*dest&&*src && (*dest == *src))
{
dest++;
src++;
}
return (*dest - *src);
}
strncmp
函数原型:int _strncmp(const char* dest, const char* src, size_t n)
函数功能:比较字符串dest和src的前n个字符。
函数说明: 如果前n字节完全相等,返回值就为0;在前n字节比较过程中,如果出现dest[n]与src[n]不等,则返回(dest[n]-src[n])。
函数实现:
int _strncmp(
const char* dest,
const char* src,
size_t n)
{
assert(dest !=
nullptr&&src !=
nullptr);
//判断dest指针和src指针是否为空,若为空抛出异常
if (!n)
//若n为0,则返回0;
return 0;
while (n--&&*dest&&*src && (*dest == *src))
{
dest++;
src++;
}
return (*dest - *src);
}
strstr
函数原型:
函数功能:找出src字符串在dest字符串中第一次出现的位置(不包括src的'\0')
函数说明:返回该位置的指针,如找不到,返回空指针。
函数实现:
char* _strstr(
const char* dest,
const char* src)
{
assert(dest !=
nullptr);
//判断dest指针是否为空,若为空抛出异常
if (!src)
return (
char*)dest;
while (*dest)
{
const char* destTmp = dest;
const char* srcTmp = src;
while (*srcTmp == *destTmp && (*srcTmp))
//限时*srcTmp与*destTmp比较后相等至'\0'时继续访问出现越界
{
srcTmp++;
destTmp++;
}
if (!(*srcTmp))
return (
char*)destTmp;
dest++;
}
return nullptr;
}
如有错误请指出,谢谢。