我有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