//strcat
原型:extern char *strcat(char *dest,char *src);
用法:#include <string.h>
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
#pragma warning (disable:4996)
#include<stdio.h>
#include<windows.h>
#include<string.h>
#include<assert.h>
char *my_strcat(char *dest, const char *src)
{
assert(dest);
assert(src);
int len = strlen(dest);
char *temp = dest + len;
while (*temp++ = *src++)
{
;
}
return dest;
}
int main()
{
char string[80];
strcpy(string, "Hello world from ");
my_strcat(string, "strcpy ");
printf("String = %s\n", string);
printf("String = %s\n", my_strcat(string, "and strcat!"));
system("pause");
return 0;
}
//strncat
原型:extern char *strncat(char *dest,char *src,int n);
用法:#include <string.h>
功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'/0')并添加'/0'。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
#pragma warning (disable:4996)
#include<stdio.h>
#include<windows.h>
#include<string.h>
#include<assert.h>
char *my_strncat(char *dest, const char *src, size_t count)
{
assert(dest);
assert(src);
int len = strlen(dest);
char *temp = dest + len;
while ((*temp++ = *src++) && (count--))
{
;
}
return dest;
}
int main()
{
char string[80] = "This is the initial string!";
char suffix[] = " extra text to add to the string...";
printf("Before: %s\n", string);
my_strncat(string, suffix, 18);
printf("After: %s\n", string);
system("pause");
return 0;
}