字符串
题目链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/submissions/
- 此题使用了string.h头文件中的memcpy()、strcat()函数,可参考菜鸟教程熟悉string.h中的函数,以及stdlib.h中的malloc等函数
- void *memcpy(void str1, const void str2, size_t n)
str1 --指向用于存储复制内容的目标数组,类型强制转换为 void 指针。
str2 – 指向要复制的数据源,类型强制转换为 void 指针。
n – 要被复制的字节数。
const void *str2这是定义了一个指针str2,str2可以指向任意类型的值,但它指向的值必须是常量,在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。动态分配的空间分配目的空间大小不能小于源空间。 - char *strcat(char *dest, const char *src)
dest – 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
src – 指向要追加的字符串,该字符串不会覆盖目标字符串。- 如果目的数组是动态空间分配的,注意要在结尾加==‘\0’==,因为源数组追加到目的数组结尾是通过结束符来判别结尾的。具体见 :https://blog.csdn.net/jinxi1978/article/details/106318788
- 程序运行时把字符串src添加到目标字符串dest之后时会溢出,可能导致段错误(Segmentation fault),strcat()功能是把src所指字符串添加到dest结尾处==(覆盖dest结尾处的’\0’)==并添加’\0’,dest必须有足够的空间来容纳src。具体见:https://blog.csdn.net/weixin_33860147/article/details/93565020
- void *memcpy(void str1, const void str2, size_t n)