Ⅰ. string类函数
1.strcpy()
strcpy 在cpp中是如何定义的? 作用:将source中的字符串内容拷贝到destination中去,但是对source中的字符串不造成影响;
my_strcpy的实现:
char* my_strcpy(char* e1, const char* e2)
{
char* tmp = e1;
while (*e1++ = *e2++)
{
;
}
return tmp;
}
2.strlen()
strlen() 在cpp中如何定义的? 作用:由此可见,strlen是返回一个字符串长度的函数;
my_strlen的实现:
int my_strlen(char* arr)
{
int sz = 0;
while (*arr++ != '\0')
{
sz++;
}
return sz;
}
3.strcmp()
strcmp 在cpp中是如何定义的? 作用:比较两个字符串第一个不同字符的ASCII码差值,并返回其差值;
my_strcmp 的实现:
int my_strcmp(const char* e1, const char* e2)
{
assert(e1 && e2);
while (*e1 == *e2)
{
if (*e1 == '\0')
{
return 0;
}
e1++;
e2++;
}
return *e1 - *e2;
}
4.strcat()
strcat在cpp中是如何定义的? 作用:连接两个字符串,并返回destination字符串的首地址;
#include<assert.h>
char* my_strcat(char* e1, const char* e2)
{
assert(e2);
char* tmp = e1;
while (*e1 != '\0')
{
e1++;
}
while (*e1 = *e2)
{
e1++;
e2++;
}
return tmp;
}
5.strstr()
strstr() 在cpp中是如何定义的? 作用:判断字符串A是否是字符串B的子集,如果是,则返回B中子集的字符串首地址;如果不是,返回空字符串NULL。 my_strstr的实现:
char* my_strstr(const char* e1,const char* e2)
{
const char* s1 = e1;
const char *s2 = e2;
const char* p = e1;
while(*p)
{
s1 = p;
s2 = e2;
while(*s1!='\0'&&*s2!='\0'&&*s1==*s2)
{
s1++;
s2++;
}
if(*s2=='\0')
{
return p;
}
p++;
}
{
6.strtok()
strtok 在cpp中是如何定义的? 作用:就是把一个字符串通过指定的字符断开,返回被切割出的字符串首地址,其次如果继续切割,则要调用空字符串和指定字符; 比如: 这个不要求学会自我实现;
7.strerror()
strerror 在cpp中是如何定义的? 作用:通过错误码的代数打印出错误信息。 比如:
Ⅱ.memory类函数
1.memcpy()
memcpy 在cpp中是如何定义的? 作用:把源字符串的内容拷贝到目标字符串中,对源字符串的内容不造成影响; my_memcpy 的实现:
#include<stdio.h>
#include<assert.h>
void* my_memcpy(void* dest, const void* sour, size_t num)
{
assert(dest && sour);
if (dest > sour)
{
while (num--)
{
*(char*)dest = *(char*)sour;
dest = (char*)dest + 1;
sour = (char*)sour + 1;
}
}
else
{
while (num--)
{
*((char*)dest + num) = *((char*)sour + num);
}
}
}
2.memmove()
memmove 在cpp中是如何定义的? 作用:是一般化的memcpy。 my_memmove 的实现:同memcpy;
3.memset()
memset 在cpp中是如何定义的? 作用:对目标内存进行操作,修改为源内容,以字节为单位;
Ⅲ.Ctype类函数
朋友,你也不想你的博客被白嫖吧?
|