您的位置:首页 > 编程语言 > C语言/C++

C语言:模拟实现strlen、strcpy、strcmp、strReverse、strcat函数

2017-01-11 23:43 627 查看
环境: Windows8,Visual Studio 2013

语言: C语言

什么是C语言里的字符串?

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
C语言中认为以字符形式保存,以‘\0’结尾的串为字符串。


字符的ASCII编码表



(图片来源:百度百科)

字符串函数(皆为模拟string.h文件中常用的函数)

1.字符串连接

char *mystrcat(char* des,const char* str)
{
assert(des);
assert(str);
char *p = des;
while (*p)
{
p++;
}
while (*p++ = *str++)
{
;
}
return des;
}


2.字符串比较

//str1大返回1,两者相同返回0,str2大返回-1
int mystrcmp (const char * src, const char * dst)
{
int ret = 0 ;

while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *src)
++src, ++dst;

if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;

return( ret );
}


4.字符串逆置

void strRev(char *s)
{
char temp, *end = s + strlen(s) - 1;
while( end > s)
{
temp = *s;
*s = *end;
*end = temp;
--end;
++s;
}
}


字符串逆置更多内容

5.字符串求长

size_t mystrlen(const char *str)//字符串求长
{
assert(str
a6e9
);
int i = 0;
while (*str != '\0')
{
i++;
str++;
}
return i;
}


以上是一些基本常用函数的整理,接下来我会将他们单独罗列出来进行一一详解,期待你的关注!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: