C语言strcat函数再学习

之前学习了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内容是一样的;

运行如下;

C语言strcat函数再学习_第1张图片

复制的时候,删除dest原来末尾的 “\0”,把src包括其后的“\0”复制到dest后面;

第二个strcat时,s3原来的长度是15,删除了s3末尾的“\0”,把s4带末尾的“\0”复制到s3;

输出s3的时候,在当前环境下,超出15个的字符都输出了;

你可能感兴趣的:(VC++,C语言,strcat,字符数组)