gpt4 book ai didi

c - 无法从 C 中的 argv[1] 获取文件名

转载 作者:行者123 更新时间:2023-11-30 20:00:50 24 4
gpt4 key购买 nike

我正在尝试制作一个程序,它可以复制您放入的文件,然后使用反转的文件名(例如 input.txt = txt.tupni)。我用

开始我的程序
int main(int argc, char **argv) {

当我使用 printf("%s",argv[1]) 时,我可以看到已放入的文件名。但是,当我尝试操作它时,我无法获取让它工作。char name = argv[1] 不起作用,char name[] = argv[1] 也不起作用

我想要的只是一个字符数组或一 block 包含所有字符的 malloc 内存。

最佳答案

argv 的类型为 char **,因此 argv[1] 的类型为 char *。这就是您想要分配给它的变量的类型。

char *name = argv[1];

您不能将 name 声明为 char [] 并使用 char * 对其进行初始化。只能使用字符串文字进行初始化。

如果您想复制字符串而不是使用另一个指向它的指针,可以使用 strdup 为复制的字符串分配内存并将其复制过来。

char *name = strdup(argv[1]);

使用完毕后,不要忘记释放它。

关于c - 无法从 C 中的 argv[1] 获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39728172/

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