c - 在不知道长度的情况下,在 C 中使用 strcpy 函数

标签 c string strcpy

我正在尝试编写一个简单的函数来获取名称并在向其添加扩展后返回它。 例如,如果我有指向“abcd”的字符指针,函数应该返回“abcd.as”

我尝试编写这个函数来获取 char 指针并在添加扩展后返回指向新 char 的指针。但是不工作有人知道为什么吗?

char* AddFileExtension(char* FileName)
{
    char* FixFileName=NULL;
    char* Extension = ".as";
    strcpy(FixFileName, FileName);
    strcat(FixFileName, Extension);
    return FixFileName;
}

最佳答案

您必须为 FixFileName 分配内存:

char* Extension = ".as";
char* FixFileName = malloc(strlen(FileName) + strlen(Extension) + 1);

不要忘记 free() 用完内存。出于显而易见的原因,这必须在函数之外完成。

关于c - 在不知道长度的情况下,在 C 中使用 strcpy 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700129/

相关文章:

c - 遍历数组以检查条件

c - 如何在 Windows 上截取屏幕截图并将其另存为 JPEG?

c - 如何为任意大小的定长 C 字符串数组分配内存

python - 有没有办法在 Python 中多次格式化一个字符串?

将浮点值复制到 char 数组

c++ - 我的 strcpy_s 不能与我的 char *pointer 一起使用,为什么?

c++ - 搜索硬盘中所有文件的最快方法是什么?

c - 内联汇编中的 double 字(GCC、IA-32)

javascript - charAt(i) 方法是否比仅使用 [i] 更快?

c - 为什么读取文件功能崩溃?