MST

星途 面试题库

面试题:C++ 中如何自定义一个安全的字符串复制函数替代 strcpy()

已知 `strcpy()` 存在缓冲区溢出风险,要求你自定义一个名为 `safeStrcpy` 的函数,它接收目标字符数组指针、源字符数组指针以及目标数组的大小作为参数,在保证不会发生缓冲区溢出的前提下实现字符串复制功能,并且当源字符串长度超过目标数组大小时,目标数组以空字符结尾。写出完整的 C++ 函数实现代码。
32.7万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <cstring>

void safeStrcpy(char* dest, const char* src, size_t size) {
    size_t len = std::strnlen(src, size);
    std::strncpy(dest, src, len);
    if (len < size) {
        dest[len] = '\0';
    }
}