gpt4 book ai didi

c - 简单的 C 字符串操作

转载 作者:太空狗 更新时间:2023-10-29 15:53:37 24 4
gpt4 key购买 nike

我试图在 C 中做一些非常基本的字符串处理(例如,给定一个文件名,砍掉文件扩展名,操作文件名,然后重新添加扩展名)- 我对 C 很生疏,并且遇到段错误。

char* fname;
char* fname_base;
char* outdir;
char* new_fname;
.....
fname = argv[1];
outdir = argv[2];
fname_len = strlen(fname);
strncpy(fname_base, fname, (fname_len-4)); // weird characters at the end of the truncation?
strcpy(new_fname, outdir); // getting a segmentation on this I think

strcat(new_fname, "/");
strcat(new_fname, fname_base);
strcat(new_fname, "_test");
strcat(new_fname, ".jpg");
printf("string=%s",new_fname);

欢迎任何建议或指示。

对于这样一个基本问题非常感谢和抱歉

最佳答案

您需要为new_fnamefname_base 分配内存。以下是如何为 new_fname 执行此操作:

new_fname = (char*)malloc((strlen(outdir)+1)*sizeof(char));

strlen(outdir)+1 中,+1 部分用于为 NULL CHARACTER '\0' 终止符分配内存。

关于c - 简单的 C 字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430743/

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