函数原型 extern char *strcat(char *dest, count char *src)
头文件:在c语言中 <string.h> 在c++中,则存在于<cstring>
功能:接收两个字符串作为参数。把函数把第二个字符串符备份附加在第一个字符串的末尾,并把拼接后形成的新字符串作为第一个字符串,第二个字符串不变。
缺点:strcat()函数无法检查第一个数组是否能容纳第二个字符串,如果分配给第一个数组的空间不够大,多出来的字符溢出到相邻存储单元时就会出问题。
#include <stdio.h>
#include <string.h>
#define SIZE 80
char *s_gets(char *st, int n);
int mian(void)
{
char flower[SIZE]; //定义第一个数组
char addon[] = "This is an array"; //定义第二个数组
puts("what is your favorite?"); //提示信息
if(s_gets(flower,SIZE)); //接收一个字符串,给flower数组赋值。
{
strcat(flower, addon); //拼接字符串
puts(flower); //输出第一个字符串
puts(addon); //输出第二个字符串
}
else
{
puts("End of file encountered!"); //提示信息,遇到文件结束
}
puts("bye");
return 0;
}
//s_gets()函数在另一个博客中有说明
char * s_gets(char *st, int n)
{
char * ret_val;
int i;
ret_val = fgets(st, n, stdin);
if(ret_val)
{
while(st[i] != '\n', && st[i] != '\0')
{
i++;
}
if(st[i] == '\n')
{
st[i] = '\0';
}
else
{
while(getchar() != '\n')
continue;
}
}
}