有如下两字符串,第一个字符串的第一个字符为中文“明”,第二个字符串的第一个字符为英文“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) ...

谢谢!明白了!
  • 上一篇:判断多重引线的样式是否存在
  • 下一篇:没有了