strcat和strncat 函数的实现

时间:2022-08-05 01:59:48

C函数原型
extern char *strcat(char *dest,char *src);
用法
#include <string.h>
在C++中,则存在于<cstring>头文件中。

功能

把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

// 函数实现strcat
#include<stdio.h>
char *strcpy(char *str,char const *str1);
int main()
{
char str[128] = {0};
char str1[128] = {0};

gets(str1);

strcpy(str,str1);

puts(str);




return 0;
}

char *strcpy(char *str,char const *str1)
{
char *p;
char *q;
p = str;
q = (char *)str1;
// while(*q)
// {
// *(p++) = *(q++);
// }
while(*(p++) = *(q++));
return str;
}

C函数原型char * strncat(char *dest, const char *src, size_t n);dest指向目标字符串,src为指向源字符串。 头文件:#include <string.h>功能把src所指字符串的前n个字符添加到dest所指字符串的结尾处,并覆盖dest所指字符串结尾的'\0',从而实现字符串的连接。说明src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的字符串。返回值返回指向dest的指针。

// 函数实现strncat
#include<stdio.h>
char *strncpy(char *str,char const *str1,int n);
int main()
{
char str[128] = {0};
char str1[128] = {0};

gets(str1);

strncpy(str,str1,5);

puts(str);




return 0;
}

char *strncpy(char *str,char const *str1,int n)
{
char *p;
char *q;
p = str;
q = (char *)str1;
while(n--)
{
*(p++) = *(q++);
}
// while(*(p++) = *(q++));
return str;
}