我有一个已知大小的压缩 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/