我有2个字符数组,其中一个长度为50,其他长度从1 ... 50变化。我需要比较这些。在C++中比较不同长度的字符数组无字符串
问题是,包含50个字符的数组通常包含更少的字符,但是在比较时,它也会将它们考虑在内。因此,如果我有2个数组,其值为U2
,第一个的长度为50,第二个为2.
那么,如何在不使用标准字符串库的情况下检查此问题?我不能使用字符串库,这是一个先决条件。
我有2个字符数组,其中一个长度为50,其他长度从1 ... 50变化。我需要比较这些。在C++中比较不同长度的字符数组无字符串
问题是,包含50个字符的数组通常包含更少的字符,但是在比较时,它也会将它们考虑在内。因此,如果我有2个数组,其值为U2
,第一个的长度为50,第二个为2.
那么,如何在不使用标准字符串库的情况下检查此问题?我不能使用字符串库,这是一个先决条件。
如果您不允许使用标准库功能,那么您的第一项任务是重新编程所需的功能。在你的例子中,这将是strcmp
。
编程这个功能并不困难 - 在线搜索应该找到几个可能的实现。
大致为:
如果串具有不同的尺寸,我认为你是更好地与strncmp()
:
int strncmp(const char *s1, const char *s2, size_t n);
从人页:
它返回一个小于整数,如果发现s1,则分别等于或大于零,以小于,匹配或大于s2。
有一个自定义实施here让你开始。
是否因为这是作业而不能使用标准库? – 2011-06-16 15:40:38
我想得到一个有意义的答案,你将不得不告诉我们你的意思是:“包含50个字符的数组,通常包含更少的字符”。它要么包含50个字符,要么包含更少的字符,但数字不能同时为50和50。你的意思是50个字符的数组,但更少意义?如果是这样,说明有多少是有意义的?它是一个字符串(以零字节结尾)?那另一个呢? – 2011-06-16 15:43:32
是的,这是作业。但是,这不是整个作业。整个家庭作业要求我创建一个相当复杂的可搜索结构,使用列表和队列。 – 2011-06-16 15:47:05