strcpy()是字符串复制函数。连字符串的结束标志‘\0’一同复制。
对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。
a+1则是数组里的“bcde”的首地址。
即此函数的意义是:把“h\0”复制到“bcde”的位置。字符串遇到‘\0’结束
即结果是:ah。
对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。所以 s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。这是字符串连接函数。即把good放到了a的后面。
结果是:agood。
strcpy是字符串复制,原型是
char *strcpy(char *dst,char *src)
函数把src的字符串内容包括字符串结束符一起复制到dst指向的空间。
strcpy(a+1,b+2)这句是把b+2开始的字符串,即"h"复制到a+1开始的位置
操作结束后a数组内容变为
"ah\0de"再打印a数组就显示
ah
strcat是字符串拼接函数,原型是
char *strcat(char *dst,char *src)函数把src的内容包括字符串结束符接到dst后面,拼接时会覆盖dst的字符串结束符
strcat(s[0],s[1])这个操作的结果是s[0][10]="agood\0"
打印s[0]显示
agood
strcpy函数:
原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#include
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
使用实例:
#include
char * strcpy(char * strDest,const char * strSrc)
{
char * strDestCopy=strDest;
if ((strDest==NULL)||(strSrc==NULL))
throw "Invalid argument";
while ((*strDest++=*strSrc++)!='\0');
return strDestCopy;
}
void main()
{
char a[20],c[]="i am teacher!";
try
{
strcpy(a,c);
}
catch(char* strInfo)
{
cout<
exit(-1);
}
strcpy的功能是将字符串2复制到字符数组1中去(包括字符串结尾符‘\0’)。strcpy的第一个参数必须是一个字符数组变量,第二个参数可以是一个包含字符串的字符数组变量,也可以是一个字符串常量。例如,下面的程序将输入的字符串复制给str1.
char str1[20],str2[20];
scanf("%s",str2);
strcpy(str1,str2);
strcat的功能是将字符串2连接到字符数组1的后面(包括结尾符‘\0’)。其中,字符串2没有变,而字符数组1中的字符将增加了。例如:
char str1[20]="12345",str2[20]="6789";
strcat (str1,str2);
printf("%s",str1); //将输出123456789
1)stcpy(a+1,b+2)是复制函数,就是将地址(b+2)后的字符串"h\0"复制到地址(a+1),之后a[10]="ah"。
2)strcat(s[0],s[1])是连接函数,就是将地址为s[1]字符串"good",连接到地址为s[0]字符串"a"后,之后首地址为s[0]的字符串s[0][10]="agood"。
以上结果已验证。
3) char s[][10]={"a","good",world"};中word少一个引号“ 。