[英]Comparison operators for C strings
我在查找比較C字符串的信息時遇到了一些困難。 我明白,與C ++不同,C不支持運算符重載,所以我想知道是否有辦法檢查一個字符串是否大於/小於另一個(例如str1> str2)?
提前感謝您的回復。 老實說,這是我實際上不得不問一個問題的第一次,因為我找不到相關的帖子。
有幾個,每個用於不同的目的(現在省略寬字符變體)。
strcmp
- 比較兩個字符串,逐個字符(C字符串相同或不相同 - 不需要與人類思考的方式一致 - 請參閱strcoll
)。 有一種變體只用於比較最多n個字符strncmp
。
strcasecmp
- 比較兩個字符串,忽略大小寫。 有一個變體只用於比較第一個最多n個字符strncasecmp
。
strcoll
- 比較兩個字符串,觀察當前設置的語言環境(這就是為什么它被稱為整理,在這種情況下不進行比較)。 如果你想讓ss
和ß
比較德國觀眾的平等,那么這就是你應該使用的。
你可能寫的地方
if (string1 > string2) ...
用一種語言,你必須寫
if (strmp(string1, string2) > 0) ...
在C.本質上,您將兩個操作數移動到函數調用中,保留比較運算符並與0
進行比較。
在C中使用strcmp()
例如,如果你想比較兩個字符串s1和s2那么,
strcmp(s1,s2)如果相等則返回0,如果s1大於s2,則返回正整數;如果s1小於s2,則返回負整數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.