Emacs Lisp: Ascii-Wert des Charakters erhalten

7

Ich würde gerne ein Zeichen in Emacs in seinen numerischen ASCII-Code umwandeln, ähnlich wie in% c. Ich habe char a = 'a'; int i = (int)a und ein paar andere Funktionen ausprobiert, aber keiner scheint zu bewirken, dass Emacs das Zeichen am Ende als Zahl liest.

Was ist der einfachste Weg, dies zu tun?

    
Ron Mordechai 08.11.2013, 15:22
quelle

3 Antworten

4

String ist ein Array.

%Vor%     
abo-abo 08.11.2013, 15:23
quelle
11

Um die ASCII-Nummer zu erhalten, die das Zeichen darstellt - wie Drew sagte - setzen Sie ein Fragezeichen vor das Zeichen und bewerten Sie diesen Ausdruck

?a == & gt; 97

Nummer erscheint in Minipuffer, mit C-u ist es hinter Ausdruck geschrieben.

Auch das Inverse funktioniert

(insert 97) fügt ein "a" in den Puffer ein.

BTW In einigen Fällen sollte das Zeichen zitiert werden

?\" wird auf 34

überprüft     
Andreas Röhler 08.11.2013 19:39
quelle
5

Ein Zeichen ist eine ganze Zahl in Emacs Lisp. Es gibt keinen separaten Zeichentyp.

Funktion string-to-char ist eingebaut und macht was Sie wollen. (string-to-char "foo") ist äquivalent zu (aref "foo" 0) , was @abo-abos Antwort ist --- aber es ist in C codiert.

    
Drew 08.11.2013 17:28
quelle

Tags und Links