gpt4 book ai didi

c - 如何处理字符串连接中尺寸较小的情况?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:21 25 4
gpt4 key购买 nike

我正在使用 C 语言并想实现一个字符串连接函数。我实现了以下功能:

void mystr_concat(char* dest, char* src)
{
char* temp = dest;
while(*temp)
{
temp++;
}

while(*src)
{
*temp++ = *src;
src++;
}
*temp = '\0';
return;
}

上述程序的输出是将“src”字符串附加到“dest”字符串。

如果用户传递了一个长度很小的“dest”字符串,以至于它不能再附加“src”字符串。

例如用户有这个字符串和调用的函数

char dest[6] = "abcnd";
char src[100] = "zdfhjksdfskdfsdfsdfj";
mystr_concat(dest, src)

在这种情况下如何检查上述引发条件和解决此问题所需的解决方案?

最佳答案

C 不对数组引用执行任何边界检查。如果您需要这样做,您将需要将目标数组的最大大小传递给函数,然后验证源是否适合(或决定在需要时截断它),或者引入一个额外的数据结构来跟踪字符串的长度,典型的 Pascal 实现以每个字符串的最大长度为前缀。

这两种解决方案都不是自动的,要以安全的方式支持此功能,需要使用 Java 或 C# 等语言来防止使用不安全的结构。

关于c - 如何处理字符串连接中尺寸较小的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419886/

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