2011-03-10 60 views
1

如果字符()應位於字母數字字符之後,您將如何比較字符串。我是否必須編寫函數或是否有任何庫函數?與更改字符順序的字符串比較

謝謝你的回答!

+0

C字符串或C++字符串? – 2011-03-10 21:42:11

+0

其實我比較std :: string,但C函數會有幫助(也許) – 2011-03-10 21:45:25

回答

2

您可以將std::lexicographical_compare用於自定義謂詞。該謂詞應該帶2個字符,如果第一個字符應該在第二個字符之前返回,則返回false。

0

某些環境提供了自定義整理順序,但一般來說,您必須自己編寫自定義整理順序。

1

有沒有內置的方式來做到這一點。你必須編寫你自己的比較函數/函子。然而,我相信你可以通過角色特徵來實現這一點,以使operator<仍然有效,但是你不會再使用std::string了。

1
  1. 複製兩個字符串是被比作臨時字符串
  2. 在這兩個字符串,更換()與後在特定的編碼字母數字字符而來字符你使用
  3. 比較使用標準庫比較功能的操縱結果
  4. 使用函數的結果並處理操縱的字符串

例如,()之前出現在ASCII中的字母數字字符之前,但{}之後!