字符串

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容