2013-10-30 250 views
0

我有一個與家庭作業有關的問題。我有一個對象數組。每個這些對象的其中一個屬性是一個字符串。我需要能夠按照字符串的字母順序對數組進行排序。我編寫了排序功能;我用整數代替字符串測試了它。排序工作正常。但是,我不知道如何按字母順序比較兩個字符串。我將如何做到這一點?按字母順序比較字符串

+1

檢查'strcmp'。 –

+0

你的字符串是'std :: string'還是以null結尾的'char'數組?根據您的「字符串」的類型,答案是不同的。 – Blastfurnace

+0

他們是std :: string。 – user1536030

回答

0

如果您不想使用現有的字符串比較函數,請嘗試使用每個字母的ASCII值進行比較。例如, 'A'= 41和 'B'= 42,所以 'B'> 'A'

因此,如果有2個字符串等

char str1[] = "abc"; char str2[] = "def";

可以對它們進行比較positionwise,所以你可以用的東西首先開始喜歡

if(str1[0] < str2[0]) ...

if(str1[1] < str2[1]) ...

等。當然,你可以通過使用forwhile迴路來改善這一點。

+0

我一直無法找到現有的字符串比較函數。你有他們的文件嗎?我知道這是一個非常非常基本的問題,但我一直在尋找幾個小時 - 我只是不知道要尋找什麼。 – user1536030

+0

布賴恩陳提到它,strcmp。有關定義和示例,請參閱http://www.cplusplus.com/reference/cstring/strcmp/和http://stackoverflow.com/questions/15430562/string-comparison-c-strcmp。 – aaa

相關問題