C의 문자 비교
두 문자를 비교하여 하나가 다른 문자보다 큰지 확인하려고 합니다.그들이 동등한지 알아보기 위해, 나는 사용했습니다.strcmp
와 비슷한 것이 있습니까?strcmp
제가 쓸 수 있을까요?
A char
변수는 실제로 8비트 적분 값입니다.값은 다음과 같습니다.0
로.255
이러한 코드는 거의 항상 ASCII 코드이지만 다른 인코딩이 허용됩니다.0
C-null 문자를 나타냅니다.255
빈 기호를 나타냅니다.
따라서 다음과 같은 과제를 작성할 때:
char a = 'a';
ASC에서 이 작업과 동일합니다.II 시스템.
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);
ASCII가 필요하지 않더라도 C는 숫자가 연속적으로 정렬되어야 하므로 이 기능이 작동합니다.
int isdigit(char c) {
if(c >= '0' && c <= '9')
return 1;
return 0;
}
C에서 문자 유형은 숫자 값을 가지고 있으므로 > 연산자는 예를 들어 정상적으로 작동합니다.
#include <stdio.h>
main() {
char a='z';
char b='h';
if ( a > b ) {
printf("%c greater than %c\n",a,b);
}
}
값을 나타내는 두 문자열을 비교하려고 하는 것 같습니다. 찾는 함수는 다음과 같습니다.
int atoi(const char *nptr);
또는
long int strtol(const char *nptr, char **endptr, int base);
다음 함수를 사용하여 문자열을 int/longint로 변환할 수 있습니다.
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;
}
당신은 캐릭터를 비교하는 당신만의 방법을 사용해야 할 것입니다.C 표준은 0부터 9까지의 숫자가 기본값을 사용하여 쉽게 비교할 수 있도록 요구합니다.c1 > c2
문체의 비교문자와 같은 다른 문자에 대해서는 작동하지 않습니다. (A-z 및 A-Z와 같은 단순한 ASCII 범위에 대해서는 작동하는 경우가 많습니다.)
한 가지 방법은 문자를 문자열로 변환하여 사용하는 것입니다. 종종 만족스럽지 못합니다.strcoll()
.
언급URL : https://stackoverflow.com/questions/22736348/char-comparison-in-c
'prosource' 카테고리의 다른 글
Powershell에서 프롬프트에 자동으로 "예"라고 대답하려면 어떻게 해야 합니까? (0) | 2023.08.06 |
---|---|
Android 장치에서 데이터/데이터 폴더에 액세스하는 방법은 무엇입니까? (0) | 2023.08.06 |
Swift 4.0으로 컴파일된 모듈은 Swift 4.0.1에서 가져올 수 없습니다. (0) | 2023.08.06 |
유형 범주별 SQL 총합 (0) | 2023.08.06 |
독트린\공통\수집\"을 "usort"합니다.배열 모음? (0) | 2023.08.06 |