strcpy 在cpp中是如何定义的?
作用:将source中的字符串内容拷贝到destination中去,但是对source中的字符串不造成影响;
my_strcpy的实现:
char* my_strcpy(char* e1, const char* e2)
{
char* tmp = e1;
while (*e1++ = *e2++)
{
;
}
return tmp;
}
strlen() 在cpp中如何定义的?
作用:由此可见,strlen是返回一个字符串长度的函数;
my_strlen的实现:
int my_strlen(char* arr)
{
int sz = 0;
while (*arr++ != '\0')
{
sz++;
}
return sz;
}
strcmp 在cpp中是如何定义的?
作用:比较两个字符串第一个不同字符的ASCII码差值,并返回其差值;
my_strcmp 的实现:
int my_strcmp(const char* e1, const char* e2)
{
assert(e1 && e2);
while (*e1 == *e2)//如果相等,进入下面操作
{
if (*e1 == '\0')//如果相等且都为'\0',说明字符串相等
{
return 0;
}
e1++;//否则加加
e2++;
}
return *e1 - *e2;//不相等,返回差值
}
strcat在cpp中是如何定义的?
作用:连接两个字符串,并返回destination字符串的首地址;
#include
char* my_strcat(char* e1, const char* e2)
{
assert(e2);
char* tmp = e1;
while (*e1 != '\0')
{
e1++;
}
while (*e1 = *e2)
{
e1++;
e2++;
}
return tmp;
}
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++;
}
{
strtok 在cpp中是如何定义的?
作用:就是把一个字符串通过指定的字符断开,返回被切割出的字符串首地址,其次如果继续切割,则要调用空字符串和指定字符;
比如:
这个不要求学会自我实现;
strerror 在cpp中是如何定义的?
作用:通过错误码的代数打印出错误信息。
比如:
memcpy 在cpp中是如何定义的?
作用:把源字符串的内容拷贝到目标字符串中,对源字符串的内容不造成影响;
my_memcpy 的实现:
#include
#include
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);
}
}
}
memmove 在cpp中是如何定义的?
作用:是一般化的memcpy。
my_memmove 的实现:同memcpy;
memset 在cpp中是如何定义的?
作用:对目标内存进行操作,修改为源内容,以字节为单位;
朋友,你也不想你的博客被白嫖吧?