gpt4 book ai didi

c - 在 C 中使用指针和 Strcpy

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:32 27 4
gpt4 key购买 nike

我对 C 中的指针概念还很陌生。假设我有两个变量:

char *arch_file_name;
char *tmp_arch_file_name;

现在,我想将 arch_file_name 的值复制到 tmp_arch_file_name 并在其末尾添加单词“tmp”。我将它们视为字符串,所以我有:

strcpy(&tmp_arch_file_name, &arch_file_name);
strcat(tmp_arch_file_name, "tmp");

但是,当 strcat() 被调用时,两个变量都改变了并且是相同的。我希望其中一个改变,另一个保持完整。我必须使用指针,因为稍后我将名称用于 fopen()、rename() 和 delete() 函数。我怎样才能做到这一点?

最佳答案

你想要的是:

strcpy(tmp_arch_file_name, arch_file_name);
strcat(tmp_arch_file_name, "tmp");

您只是在原始代码中复制指针(和其他随机位,直到您遇到 0 字节),这就是它们最终相同的原因。

正如 shinkou 正确指出的那样,确保 tmp_arch_file_name 指向一个足够大的缓冲区(不清楚您是否在代码中这样做)。最简单的方法是做类似的事情:

char buffer[256];
char* tmp_arch_file_name = buffer;

关于c - 在 C 中使用指针和 Strcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com