题目:
编写程序实现函数strcat和strncat。
题目分析:
strcat的主要是将一个字符串连接到另一个字符串之后的位置,例如:将字符串“def”拷贝到字符串“abc”之后,得到新的字符串为“abcdef”。
strncat将一个字符串的几个字符连接到另一个字符串之后,可以限制连接的字符串数。
下面是自定义my_strcat的实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char *my_strcat(char *dst, char *str)
{
assert(dst);
assert(str);
char *p = dst;
while (*dst)
{
dst++;
}
while (*dst++ = *str++)
{
;
}
return p;
}
int main()
{
char dst[] = "abcdef";
char str[] = "abc";
my_strcat(dst, str);
printf("%s\n", dst);
system("pause");
return 0;
}
下面是my_strncat的实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char *my_strncat(char *dst, char *str, int count)
{
assert(dst);
assert(str);
char *p = dst;
while(*dst)
{
dst++;
}
while((count--) && (*str != '\0'))
{
*dst++ = *str++;
}
return p;
}
int main()
{
char dst[10] = "abc";
char str[] = "defg";
printf("请输出追加后的字符串:\n");
my_strncat(dst, str, 3);
printf("%s\n", dst);
system("pause");
return 0;
}
本文出自 “无心的执着” 博客,转载请与作者联系!