字符串函数构析
Posted mr-peng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串函数构析相关的知识,希望对你有一定的参考价值。
今日参加了一场笔试,刚好程序题问到一道strcpy函数构建,刚好之前看过字符串函数,同时网上文章大部分都是介绍了下函数的用法,缺少了函数的实现,今日就来自己构析下常见的字符串函数,字符串函数位于标准库的头文件string.h中,在使用函数时需引用该文件
strlen
-
函数原型:size_t strlen(const char *s)
-
函数功能:返回s的字符串函数(不包含结尾的0)
-
函数构析:
-
size_t strlen(const char *s) /*size_t在不同架构下分别代表 unsigned int和 unsigned long*/
{
int idx = 0;
while(s[idx]!=‘ ‘)
{
idx++;
}
return idx;
}
-
strcmp
-
函数原型:int mycmp(const char *s1,const char *s2)
-
函数功能:比较两字符串,返回值为三种结果(以ascii码表对比)
-
0:s1==s2
-
正数:s1>s2
-
负数:s1<s2
-
-
函数构析:
int mycmp(char *s1,const char *s2)
{
while(*s1 == *s2 && *s1 != ‘ ‘)
{
s1++;
s2++;
}
return *s1 - *s2;
}
strcpy
-
函数原型:char *strcpy(char *dst,const char * src)
-
函数功能:返回s的字符串函数(不包含结尾的0)
-
函数构析:
char *mycpy(char *dst,const char *src)
{
char *rest = dst;
while(*dst++ = *src++);
*dst=‘ ‘;
return rest;
}
strcat
-
函数原型:char *mycat(char *dst,const char * src)
-
函数功能:返回s的字符串函数(不包含结尾的0)
-
函数构析:
char *mycat(char *s1,const char *s2)
{
char *rest = s1;
s1 = s1 + strlen(s1);
while(*s1++ = *s2++);
return rest;
}
以上是关于字符串函数构析的主要内容,如果未能解决你的问题,请参考以下文章