搞懂strcpy和strcat函数

貌似笔试题喜欢搞这样的组合.
--------------------- 
作者:ProgrammerSLK 
来源:CSDN 
原文:https://blog.csdn.net/slk11580/article/details/79571478 
版权声明:本文为博主原创文章,转载请附上博文链接!

strcat函数:
将两个char类型连接。
char d[20]="GoldenGlobal"; char *s="View"; strcat(d,s);
结果放在d中
printf("%s",d);
输出 d 为 GoldenGlobalView (中间无空格)
d和s所指内存区域不可以重叠且d必须有足够的空间来容纳s的字符串。
返回指向d的指针。
原型是 extern char *strcat(char *dest, const char *src);
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')。


strcpy函数:
原型声明:char *strcpy(char* dest, const char *src);
头文件:#include <string.h> 和 #include <stdio.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
 

#include "stdafx.h"
#include"stdio.h"
#include"string.h"
#include <stdlib.h>

int main()
{
	char p1[10] = "abcd", *p2, str[10] = "xyz";


	p2 = "ABCD";
	strcpy(str + 2, strcat(p1 + 2, p2 + 1));
	printf(" %s", p1);
	printf(" %s", str);
	system("pause");
	return 0;
}

输出: abcdBCD xycdBCD

值得注意的是当p1+5,或者更大时,会只输出p1的值abcd。

猜你喜欢

转载自blog.csdn.net/ruibin_cao/article/details/84546494