有如下两字符串,第一个字符串的第一个字符为中文“明”,第二个字符串的第一个字符为英文“A”,在lisp中如何判断字符串第一个字符是英文还是中文:
"明经ABC"
"ABC"
网友答: (ascii 字符串变量名)>128的是中文字符串,否则是英文字符。网友答: 谢谢!还有一个问题,因程序中的字符串由用户输入而具有特殊性,即字符串中的第一个字有可能是中文,也有可能是西文;因中文占两个字节,西文占一个字节,因此使用ascii函数取字符串变量名时,又如何能保证字符串变量名何时取一个字节,何时又取二个字节?网友答:
(setq i 1)
(if (> (ascii (substr "明经ABC" i 1)) 128)
(setq i (+ i 2))
(setq i (+ i 1))
)
如果 > 128 那就表示为中文,(+ i 2) 取间隔一个位置
否则表示英文,(+ i 1) 取下一个位置
网友答: 多谢!网友答:HuaiYu 发表于 2005-8-11 08:29
(setq i 1)
(if (> (ascii (substr "明经ABC" i 1)) 128) (setq i (+ i 2)) (setq i (+ i 1) ...
谢谢!明白了!