簡體   English   中英

C字符串的比較運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM