之前学习了strcat函数;下面继续学习此函数;
它的功能描述是,
功能
把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。
说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
void CCattest6View::OnDraw(CDC* pDC)
{
CCattest6Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
char s1[15] = "hello ";
char s2[15] = "abc";
char *p1;
p1 = strcat(s1, s2);
pDC->TextOut(50, 50, s1);
pDC->TextOut(50, 80, p1);
char s3[15] = "hello hello ";
char s4[15] = "abcABCDEFGHIJK";
p1 = strcat(s3, s4);
pDC->TextOut(50, 110, s3);
}
之前没有看此函数的返回值;它的返回值类型是char *;
第一个strcat后,输出s1和p1内容是一样的;
运行如下;
复制的时候,删除dest原来末尾的 “\0”,把src包括其后的“\0”复制到dest后面;
第二个strcat时,s3原来的长度是15,删除了s3末尾的“\0”,把s4带末尾的“\0”复制到s3;
输出s3的时候,在当前环境下,超出15个的字符都输出了;