我試圖比較兩個字符,看看是否比另一個更大。要看他們是否相等,我用strcmp
。有什麼類似於我可以使用的strcmp
?C中的字符比較
C中的字符比較
回答
在C char類型具有數字值,因此>運算符將工作得很好例如
#include <stdio.h>
main() {
char a='z';
char b='h';
if (a > b) {
printf("%c greater than %c\n",a,b);
}
}
真的,那麼這是否意味着一個
@AndrewPaulSimmons「一」 ascii碼十進制97不小於「B」的ASCII碼的十進制66.少如果需要則區分大小寫的比較上的兩個參數使用的tolower() – Vorsprung
甲char
變量實際上是8位的整數值。它的值將從0
到255
。這些是ASCII codes。 0
代表C空字符,而255
代表空符號。
所以,當你寫了以下任務:
char a = 'a';
這是同樣的事情:
char a = 97;
所以,你可以比較使用兩個char
變量>
,<
,==
, <=
,>=
運營商:
char a = 'a';
char b = 'b';
if(a < b) printf("%c is smaller than %c", a, b);
if(a > b) printf("%c is smaller than %c", a, b);
if(a == b) printf("%c is equal to %c", a, b);
這個問題被標記有C. – ThoAppelsin
很抱歉的NIT: 「0代表NULL」?可能是ASCII NUL或C空字符,但不是「NULL」。 – chux
我很抱歉。我的錯! – Victor
我相信你正在試圖比較兩個字符串代表值,您正在尋找的功能是:
int atoi(const char *nptr);
或
long int strtol(const char *nptr, char **endptr, int base);
這些功能將允許您將字符串轉換成int/long int:
int val = strtol("555", NULL, 10);
並將其與另一個值進行比較。
int main (int argc, char *argv[])
{
long int val = 0;
if (argc < 2)
{
fprintf(stderr, "Usage: %s number\n", argv[0]);
exit(EXIT_FAILURE);
}
val = strtol(argv[1], NULL, 10);
printf("%d is %s than 555\n", val, val > 555 ? "bigger" : "smaller");
return 0;
}
- 1. c中的字符比較?
- 2. 字符串,C++中的字符比較
- 3. 字符串比較與目標C中的類比較-C
- 4. 在C中逐字比較字符串
- 5. Objective-C字符串比較
- 6. 字符串比較C - strcmp()
- 7. 比較字符串(C++)
- 8. C#字符串比較?
- 9. C++字符串比較
- 10. rs232字符串比較C
- 11. c#比較2字符串
- 12. C#asp.net字符串比較
- 13. C#比較字符串ignoreCase
- 14. 字符串比較C++
- 15. c#字符串比較
- 16. C++字符串比較
- 17. C#:DateTime.DayOfWeek字符串比較
- 18. 比較字符串C++
- 19. C:字符比較失敗
- 20. 字符串比較 - C
- 21. 字符串比較C#
- 22. Optarg字符串比較C
- 23. 字符串比較C
- 24. C# - 比較字符串
- 25. 比較字符串指針?比較字符串C
- 26. 比較C中的2個字符值
- 27. 比較C中的字符串 - strcmp
- 28. C編程中的字符串比較
- 29. C中的字符串比較#
- 30. Win32中的字符串比較C++
'=='和'>'怎麼樣? –
當您按照克雷克的建議,請記住使用'unsigned char'。 – Deduplicator
Kerrek的評論是答案,除非你有一些你沒有提到的更詳細的細節。嘗試在這種情況下舉個例子。 – ThoAppelsin