我试图考虑如何编写一个函数来获取 char* 并返回指向同一个 char 的指针,但在添加到他的末尾几个常量字符之后。
char* addExtension(char* FileName)
{
}
我认为这正是标准库函数strcat()
(用于“字符串连接”)所做的。你应该考虑使用它。
还要注意缓冲区溢出的危险,这样的函数(和strcat()
,就此而言)本质上是不安全的,因为它不包含有关可用空间的信息。
你真的不能这样做,无论如何都不能使用任意字符串。字符串可以是:
Segmentation fault
或更糟。malloc
'd 指针 - 它们也有固定的空间量,需要free
d.您可以复制该字符串并返回一个新字符串,但如果您不处理旧字符串,可能会导致内存泄漏。例子
char *copycat(char *first, char *second) {
char *result = malloc(strlen(first)+strlen(second)+1);
strcpy(result, first);
strcpy(result+strlen(first), second);
return result;
}