我有2个char数组,一个长度为50,另一个长度为1 ... 50。我需要比较这些。
问题是,包含50个字符的数组通常包含较少的字符,但在比较时,它也会将它们考虑在内。所以,如果我有2个数组,其值为U2
,则第一个的长度为50,第二个为2.
那么,如何在不使用标准字符串库的情况下进行检查?我不能使用字符串库,这是先决条件。
答案 0 :(得分:5)
如果不允许使用标准库功能,那么您的首要任务是重新编写所需的功能。在您的示例中,这将是strcmp
。
编程此功能并不困难 - 在线搜索应该找到几种可能的实现方式。
大致是:
答案 1 :(得分:1)
如果字符串的大小不同,我认为strncmp()
:
int strncmp(const char *s1, const char *s2, size_t n);
来自 man 页面:
如果找到s1,则返回小于,等于或大于零的整数,小于,匹配或大于s2。
有一个自定义实现here可以帮助您入门。