比较非空终止字符数组

标签 c arrays compression unsigned-char

我有一个已知大小的压缩 unsigned char 数组。由于压缩考虑,我没有在最后存储空终止符。我想将它与另一个相同格式的数组进行比较。什么 这样做的最好方法是什么?

我想将比较过的数组复制到一个新数组,添加空终止符,然后使用 strcmp() 比较它们。

有更好的建议吗?

最佳答案

您可以使用 string.h 中的 strncmp() 函数

strncmp(str1, str2, size_of_your_string); 

在这里你可以手动给出字符串的大小(或者你想要比较的字符数)。 strlen() 可能无法获取字符串的长度,因为您的字符串未以 NUL 字符结尾。

更新:

看unsigned char数组比较代码

#include<stdio.h>
#include<string.h>
main()
{

unsigned char str[]="gangadhar", str1[]="ganga";
if(!strncmp(str,str1,5))
printf("first five charcters of str and str1 are same\n");
else
printf("Not same\n");

}

关于比较非空终止字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18437430/

相关文章:

c - 了解 C 程序

c# - 想要使用 C# 中的编码获取字符串数组作为 C 函数的输出

c - 如果 "i = i++"不被视为未定义行为会发生什么?

arrays - Excel 中跨多个工作表的 If 语句

algorithm - LZ4压缩算法解释

c# - 压缩/解压缩文件夹和文件

c - 将新节点插入二叉树并返回其头指针

c# - 如何将字节 [] 写入 Excel 文件?

php - 如何将项目数组转换为其对应的 id 数组

compression - 用于 CSS、JS 的 Tomcat8 Gzip 压缩