Как сравнить значение ASCII

Я хочу сохранить значение буквы ASCII в переменной, как мне это сделать?

Например :

r ASCII variable = 82
main()
{
    character = "character read from a file";
    variable= "r ascii"; //(in this case 82), the problem is that the letter is always        variable.;
    printf( "the value of %c is %d, character, variable)
}

Как я могу это сделать?

Также в качестве дополнительной заметки, как я могу прочитать символ файла .txt за символом? поэтому его можно было бы сохранить в символьной переменной.


person XIIIX    schedule 19.09.2011    source источник


Ответы (2)


Просто сделать:

if (r == 82) {
   // provided r is a char or int variable
}

В C переменные char представлены целочисленным значением ASCII, поэтому, если у вас есть это:

char r;
r = 82;
if (r == 82) {
}

Такой же как:

char r;
r = 'R';
if (r == 'R') { // 'R' value is 82

} 

Вы даже можете смешивать их:

char r;
r = 82;
if (r == 'R') { // will be true

}
person Pablo Santa Cruz    schedule 19.09.2011
comment
В C переменные не обязательно ASCII, только примерно для 99,9% машин это верно, и я, к сожалению, работаю на одной из других :-) - person paxdiablo; 19.09.2011
comment
USS/OMVS/(как бы он ни назывался на этой неделе) на мейнфрейме использует EBCDIC. - person paxdiablo; 19.09.2011
comment
@paxdiablo: о! Я понимаю. Спасибо, что поделился. - person Pablo Santa Cruz; 19.09.2011

Если вы просто хотите сохранить значение ascii в целочисленной переменной

просто используйте это

int b;
char c = 'r';
b = (int)c;
printf("%d",b);
person bijin    schedule 27.02.2013