【发布时间】:2018-09-12 16:32:16
【问题描述】:
两个变量:string0 和 string1。两者都是char * 类型。我想做的是将string0的第i个元素添加到string1的末尾。由于string0[i] 是char,我不能简单地使用strcat(string1, string0[i])。
不过,我有其他想法:
char string0i[2] = {string0[i], '\0'};
strcat(string1, string0i);
但这会导致分段错误。为什么以及如何实现我想要的,即将string0的第i个元素附加到string1?
【问题讨论】:
-
为了正确使用
strcat(),第一个参数中必须有足够的空间来容纳它和你连接到它的任何东西。如果没有足够的空间,剩余的信息将溢出其范围并导致分段错误。 -
@Tau 哦...是的。那么……还有其他方法吗?
-
计算所需大小并将结果存储在该大小的变量中。如果在编译时不知道大小,则需要使用
malloc()或calloc()从堆中获取此空间。 -
如果您对
strcat的文档不清楚,您应该在教科书中学习C 字符串、数组和指针。您还将了解如何正确编写初始化程序等。这是一堂基础课。 -
@toohonestforthissite 我的初始化程序有什么问题?
标签: c arrays string pointers char