我在查找比較C字符串的信息時遇到了一些困難。我明白,與C++不同,C不支持操作符重載,所以我想知道是否有任何方法檢查一個字符串是否大於/小於另一個(例如str1> str2)?C字符串的比較運算符
非常感謝您的回覆。這是我第一次真的不得不問一個問題,因爲我找不到相關的帖子。
我在查找比較C字符串的信息時遇到了一些困難。我明白,與C++不同,C不支持操作符重載,所以我想知道是否有任何方法檢查一個字符串是否大於/小於另一個(例如str1> str2)?C字符串的比較運算符
非常感謝您的回覆。這是我第一次真的不得不問一個問題,因爲我找不到相關的帖子。
有幾個,每個服務於不同的目的(現在省略寬字符變體)。
strcmp
- 比較兩個字符串,逐個字符(C是什麼字符串是否相等的概念 - 不需要與人們的想法一致 - 見strcoll
)。有一個變體只能比較第一個最多n個字符,strncmp
。
strcasecmp
- 比較兩個字符串,忽略大小寫。有一個變體僅用於比較第一個最多n個字符,strncasecmp
。
strcoll
- 比較兩個字符串,觀察當前設置的語言環境(這就是爲什麼稱爲歸類,而不是在這種情況下比較)。如果您希望ss
和ß
比較德國觀衆的平等,那麼這就是你應該使用的。
下,您可能在語言寫
if (string1 > string2) ...
,你必須寫
if (strmp(string1, string2) > 0) ...
在C.
基本上你兩個操作數進入函數調用,保留了比較操作而是與0
進行比較。
使用的strcmp()的C.
例如,如果要比較兩個字符串S1和S2然後,
STRCMP(S1,S2)將返回0,如果他們是平等的,正整數,如果如果s1小於s2,則s1大於s2且爲負整數。