1.实现strcat( )函数
strcat()是c/c++中的字符串连接函数,实现strcat()函数的思路为先将目标字符串的结束符’\0’替换成源字符串的首字符,然后依次替换。注意,这里我们在定义目标字符串的时候利用字符数组,并且确保字符数组的大小足够存储连接后的字符串,否则,会发生栈溢出的情况,若用指针方法定义字符串,也会发生类似的栈溢出情况。
下面为我的strcat()函数代码:
char *my_strcat(char *des, const char *src)
{
assert(des);
assert(src);
char *ret = des;
while (*des++)
{
;
}
des--;
while (*des++ = *src++)
{
;
}
return ret;
}
int main()
{
char des[20]="hello ";
char *src = "world!";
char *ret=my_strcat(des, src);
printf("%s\n", ret);
system("pause");
return 0;
}
2.实现strncat( )函数
strncat()函数的是将源字符串的前n个字符连接到目标代码后面,当然,我们也要为目标字符串数组分配足够大的空间。字符串连接结束标志为n等于零或者遇到源字符串结束符。
下面为我的strcat()函数代码:
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strncat(char *des, const char *src, size_t count)
{
assert(des);
assert(src);
assert(count > 0);
char *ret = des;
while (*des++)
{
;
}
des--;
while ((count != 0) && (*des++ = *src++))
{
count--;
}
return ret;
}
int main()
{
char des[20]="hello ";
char *src = "world!";
char *ret2 = my_strncat(des, src,3);
printf("%s\n", ret2);
system("pause");
return 0;
}
在这里呢,小主建议大家在实现自己的函数的时候,最好将其封装成函数,在主函数中调用,这样更加规范。虽然我们的代码比不上库函数里的代码的简洁性以及高效性等,但是我们要做到基本的规范性,是吧,你说呢,哈哈,好了,谢谢博友路客的访问!