strcpy的原型是char * strcpy(char* strDest, char* strSrc)
返回一个char* 的原因是这样可以链式表达,如strlen(strcpy(str1,str2))
itoa(int, string, 10)表示将int转为string,以10进制
sprintf(s,"%d", 123)将123转换为string并保存到s中
sprintf(s,"%s and %s", who, whom)将who和whom以及还有"and"连接保存到s中
char s[]="123456789";
char d[]="1234";
strcpy(d,s);
printf("%s %s",d,s);
//结果打印的是123456789 6789
这个结果造成的原因是首先s和d存放的空间连续即是
1234\0123456789\0
而微软编写这个strcpy程序的源码为:
char* strcpy(char* dst,const char *src){
char *cp=dst;
while(*cp++=*src++);
return dst;
}
所以造成了那样的输出,避免的话,我们必须为s和d分配足够的空间