arrays - 如何在没有内部函数的C中复制char数组
问题描述
这是我的代码
char function(char *dst)
{
int i;
char *arr;
i = 0;
while(dst[i] != '\0')
{
arr[i] = dst[i];
i++;
}
dst[i] != '\0'
return(arr);
}
int main(void)
{
char a[] ="asdf"
printf("%s", function(a);
}
我想复制*dst
到空*arr
,但我的代码不起作用。我无法理解。如何在 C 中复制没有内部函数的数组(ex_strcpy,memspy ....)谢谢
解决方案
除了丢失;
并确保string
传递给函数的内容始终是'\0'
终止的(否则程序将遇到副作用strcpy
)。并返回char*
而不是 char,您错过了为arr
// return char * instead of char
char* function(char *dst)
{
// Note - sizeof(dst) wont work
// Neither does sizeof(dst)/sizeof(char)
// allocate one extra for '\0'
size_t size_to_alloc = (strlen(dst) + 1) * (sizeof *arr);
char *arr = malloc( size_to_alloc );
char *p = arr;
for ( ; *dst ; p++, dst++)
*p = *dst;
*p = '\0';
return(arr);
}
推荐阅读
- date - 使用 PostgreSQL (AWS Redshift) 将 Qlik Sense 日期选择器扩展的日期格式从“M/D/YYYY”更改为“DD/MM/YYYY”
- powershell - 如何将文件夹层次结构转换为一台服务器上的共享并从另一台服务器复制权限?
- python-3.x - 将行从文本拆分为键和值,并根据键搜索值
- python-3.x - 如何从 OCR 图像中提取布局信息
- javascript - 克隆没有值的输入
- mysql - 查询选择仅在某一年购买的客户
- java - Maven nar插件:nar文件不在依赖项目的类路径中
- mule - Dataweave(嵌套)映射条件映射
- android - Android Q访问非SDK接口-Landroid/widget/AbsListView;->mSelectorPosition:I(greylist-max-p,反射,拒绝)
- asp.net-core - 向 .NET Core 3 应用程序添加身份服务器身份验证失败,并显示“未指定密钥类型”。