2つの文字を比較して、一方が他方よりも大きいかどうかを確認しようとしています。それらが等しいかどうかを確認するために、strcmp
を使用しました。使用できるstrcmp
に似たものはありますか?
char
変数は、実際には8ビットの整数値です。 0
から255
の値があります。これらは ASCIIコード です。 0
はC-null文字を表し、255
は空のシンボルを表します。
そのため、次の割り当てを作成する場合:
char a = 'a';
次と同じです:
char a = 97;
したがって、>
、<
、==
、<=
、>=
演算子を使用して、2つの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では、char型には数値があるため、たとえば>演算子は問題なく機能します
#include <stdio.h>
main() {
char a='z';
char b='h';
if ( a > b ) {
printf("%c greater than %c\n",a,b);
}
}
値を表す2つの文字列を比較しようとしていると思います。探している関数は次のとおりです。
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;
}