pascal语言 从键盘输入任意一个字符,判断并输出是大写字母、小写字母、数字还是其它特殊字符 要有分析 输入一个字符串,将其中的大写字母改为小写字母,小写字母改为大...

作者&投稿:薄侨 (若有异议请与网页底部的电邮联系)
var
a:char;
begin {开始}
readln(a); {读取字符}
if (ord(a)>=48)and(ord(a)<=57) then write('number'); {当48<=它的序列号<=57时,它是数字}
if (ord(a)>=65)and(ord(a)<=90) then write('big letter'); {当65<=它的序列号<=90时,它是大写字母}
if (ord(a)>=97)and(ord(a)<=122) then write('small letter') {当97<=它的序列号<=122时,它是小写字母}
else write('other character'); {其它的话,它是其它字符}
end. {结束}

用ASC码,case语句。
http://wenku.baidu.com/view/7bd1b8eb19e8b8f67c1cb952.html(这是ASC码表的连接)只看十进制的就行了。
比如读入了a,存在c这个char型变量中。
d:=ord(c);
就会把a的ASC码存在d中,然后用case判断就好了。

也可以预存集合类型判断

C语言字..符类型判断。从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。~

int ch;
换成

char ch;
我看了半天。。。

汇编???
DATA SEGMENT
ANY DB 22
DB 10
DB 20 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET ANY
ADD BX,2
CALL INPUT
CALL _TEST
CALL SHOW
MOV AH,4CH
INT 21H

SHOW PROC
MOV CX,10
PUSH BX
L1: MOV AH,2
MOV DL,BYTE PTR [BX]
INT 21H
INC BX
LOOP L1
POP BX
RET
SHOW ENDP
INPUT PROC
PUSH BX
MOV AH,10
LEA DX,ANY
INT 21H
POP BX
RET
INPUT ENDP
_TEST PROC
PUSH BX
MOV CX,10
LS: CMP BYTE PTR [BX],'a'
JB LL
LB: CMP BYTE PTR [BX],'z'
JA EXIT
SUB BYTE PTR [BX],20H
INC BX
LOOP LS
JMP EXIT1
LL: CMP BYTE PTR [BX],'Z'
JA EXIT
CMP BYTE PTR [BX],'A'
JB EXIT
ADD BYTE PTR [BX],20H
INC BX
LOOP LS
JMP EXIT1
EXIT: MOV BYTE PTR [BX],' '
INC BX
LOOP LS
EXIT1: POP BX
RET
_TEST ENDP
CODE ENDS
END START