gpt4 book ai didi

c - strcat 工作异常

转载 作者:行者123 更新时间:2023-11-30 19:15:57 25 4
gpt4 key购买 nike

我正在尝试传递命令行参数,然后将其适当连接以生成 shell 命令,以便我可以使用 system() 运行它们(我知道这是不可取的,并且有更好的方法,但有人要求我这样做仅以这种方式)。但是我传递的字符串连接存在一些问题这是代码(我已经打印了每一步的所有内容以获得清晰的理解,不,我还没有编写 system() 调用,首先我需要对这个串联进行排序):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char* path=argv[1];
char* oldName=argv[2];
char* newName=argv[3];
char* command1="cd ";
char* command2="ren ";
printf("\n\n%s\n%s\n%s\n%s\n%s\n",command1,command2,path,oldName,newName);
strcat(command1,path);
printf("\n\n%s\n%s\n%s\n%s\n%s\n",command1,command2,path,oldName,newName);
strcat(oldName," ");
strcat(oldname,newName);
printf("\n\n%s\n%s\n%s\n%s\n%s\n",command1,command2,path,oldName,newName);
strcat(command2,oldName);
printf("\n\n%s\n%s\n%s\n%s\n%s\n",command1,command2,path,oldName,newName);

return 0;
}

然而,在将 command1 连接到路径后,一切都变得一团糟。

http://i.stack.imgur.com/vPxxD.png

最佳答案

strcat 期望目标足够大以容纳结果。至quote :

Pointer to the destination array, which should contain a C string, and be large enough to contain the concatenated resulting string.

关于c - strcat 工作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498233/

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