在C中连接两个字符串的安全方法

时间:2016-04-05 21:32:23

标签: c string concatenation strcpy strcat

我有以下代码可以连接两个字符串:

char *getConcatString(char *str1, char *str2) {
    char *finalString = malloc(1 + strlen(str1) + strlen(str2)); // Needs to be freed by the user after use
    if(finalString == NULL)
        return NULL;

    strcpy(finalString, str1);
    strcat(finalString, str2);

    return finalString;
}

有更安全的方法吗?喜欢前。 strncat和strncpy? 感谢

1 个答案:

答案 0 :(得分:4)

  

有更安全的方法吗?

我唯一能做的就是更改参数声明并将参数添加到NULL。

例如

@posts = Post.where("id != ?", Post.last.id)