字符串

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分配足够的空间

你可能感兴趣的:(字符串)