从键盘输入一系列字符,以回车为结束符,编程统计其中非数字字符的个数
;汇编语言 从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。
;以下是源程序
;用MASM5.0编译通过,运行结果如下:
;
;E:\masm1> 1125_3
;
;Please input : ABCD23$
;Total non_digital are: 004
;E:\masm1> 1125_3
;
;Please input : 1234$
;Total non_digital are: 000
;E:\masm1> 1125_3
;
;Please input : DFHGEFEHIEFIJIEJFI8797JHFJ$
;Total non_digital are: 022
;E:\masm1>
;
;程序如下:
data segment
s1 DB 0dh,0ah,'Please input : $'
s2 DB 0dh,0ah,'Total non_digital are: $'
num db 0
data ends
code segment
main proc far
assume cs:code
start:
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
lea dx,s1
mov ah,9
int 21h
NEXT:
MOV AH,01
INT 21H
CMP AL,'$'
JE DOWN
CMP AL,'0'
JB NO09
CMP AL,'9'
JA NO09
JMP NEXT
NO09:
INC NUM ;输入的是非数字,计数器加1
JMP NEXT
DOWN: ;输入'$',输出结果
lea dx,s2
mov ah,9
int 21h
MOV AL,NUM ;将计数器值以10进制输出
MOV AH,0
MOV DL,100
DIV DL
CALL DISP_P
mov al,ah
mov ah,0
MOV DL,10
DIV DL
CALL DISP_P
XCHG AH,AL
CALL DISP_P
ret
main endp
;============
DISP_P PROC NEAR
PUSH aX
MOV DL,AL
ADD DL,30H
MOV AH,2
INT 21H
POP aX
RET
DISP_P ENDP
;=============
code ends
end start
#include
#include
int count(char *);
void main(void)
{
char a[200];
scanf("%s",a);
printf("%d",count(a));
}
int count(char *s)
{
int c=0;
while(*s)
{
if(*s>'9'||*s<'0')
c++;
s++;
}
return c;
}
||类似的题目:统计字母,数字,空格,其它字符个数
#include<string.h>
#include<stdio.h>
void main()
{
char a[100];
printf("Enter a String:");
gets(a);
void tongji(char a[]);
tongji(a);
}
void tongji(char a[])
{
int i,z=0,s=0,k=0,q=0;
for(i=0;i<strlen(a);i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
z++;
else if(a[i]>='0'&&a[i]<='9')
s++;
else if(a[i]==32)
k++;
else q++;
}
printf("字母:%d
",z);
printf("数字zhi:%d
",s);
printf("空格:%d
",k);
printf("其他:%d
",q);
}
void tongji(char a[])
{
int i,z=0;
for(i=0;i<strlen(a);i++)
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
z++;
printf("字母:%d
",z);
}
扩展资料:
C语言程序就是C语言基本字符集的一个符合规定形式的序列。字符是C语言的最基本的元素,C语言字符集由字母、数字、空白、标点和特殊字符组成(在字符串常量和注释中还可以使用汉字等其他图形符号)。由字符集中的字符还可以构成C语言进一步的语法成分(如标识符、关键词、运算符等)。C语言基本字符包括以下几种。
(1)数字字符:0,1,2,3,4,5。6.7.8.9。
(2)大小写英文字母:a~z,A~Z。
(3)其他可打印(可显示)的字符,如各种标点符号、运算符、括号等。
(4)空白符:空格符、换行符、制表符等统称为空白字符。空白符只在字符常量和字符串常量中起作用。在其他地方出现时,只起间隔作用。
参考资料来源:百度百科-字符标示符
先找出从0到9的ASCII的范围是多少,用个循环,再逐个对字符进行判断它的ASCII是不是在这个范围内,不是就加1。
”举手之劳“你都懒的自己思考
真懒得可以
从键盘上输入任意字符串(以回车作为结束标志),按其中字符在ASCII表中的...
{ char str[256];\/\/字符缓冲区 int n = 0,i;\/\/n:计数,i循环控制变量 char c;\/\/临时字符变量 while((c=getch()) != 13)\/\/输入字符不是回车的话进入循环。{ printf("%c",c);\/\/显示字符;str[n++] = c;\/\/将字符存入缓冲区;if(n == 1) \/\/第一次输入的话不做处理;contin...
输入一字符串以回车符为结束判断它是不是回文 一道C语言题 谢谢_百度...
include<stdio.h>#include<string.h>#include<malloc.h>int main(){ char str[101],*p0,*p1,hflag;\/\/指针分别指向字符串头尾 hflag 标识变量 1是回文 0不是aa: memset(str,0,101); hflag=1; printf("输入一个100字符以内的字符串:"); scanf("%s",str); p0=&...
...通过键盘输入一串字符,该字符串以回车键结束输入,要求分别统计出该字...
num[0] ~num[25]分别表示 a~z出现的次数!include<stdio.h> int main(){ char str;int i,n = 0;int num[26] = {0};while((str = getchar()) != '\\n') \/\/输入回车时结束 { num[str-97]++;\/\/注意 字符是以ASCII码的形式储存的 } printf("a~z的个数分别为:");for(i ...
编写程序,输入一串字符(用回车结束)输出每个字符的ASCII码值,每串
include<stdio.h> int main(){ int i;char a[10005];scanf("%s",a);for(i=0;i<5;i++)printf("%d ",a[i]);return 0;}
输入一行字符,以回车键结束输入 分别统计其中出现的大写英文字母 小写...
include <stdio.h>int main(){ int letter=0,space=0,digit=0,others=0; char c; while((c=getchar())!='\\n'){ if(c==' ') space++; else if(c>='1'&&c<='9') digit++; else if((c>='a'&&c<='z')||c>='A'&&c<='Z') letter++; els...
从键盘输入一行字符以回车键结束,输出其中最大字符的ASCII码
include<stdio.h>int main(){ char temp, max; int flag = 0;while( (temp=getchar())!='\\n'){if(flag==0){max = temp;flag = 1;}if(temp > max)max = temp;} printf("max=%d", max); return 0;}
利用指针编写程序,从键盘上输入一串字符(以回车键为结束),将其以字符...
include <stdio.h>#include <malloc.h>#include <string.h>int main(){ char *strptr = (char*)malloc(sizeof(char) *255); scanf("%s", strptr); char strarr[255] = { '\\0' }; strcpy(strarr, strptr); puts(strarr); free(strptr); return 0;} ...
由键盘读入一字符串(以回车为结束标志),将字符串中的大写字母变小写,小 ...
不可以 因为strlwr strupr 都是对于整个字串的 下面程序可以 include "stdio.h"void main(){ char str[20];int i;gets(str);for(i=0;str[i]!='\\0';i++)if(str[i]<='z'&&str[i]>='a') str[i]-=32;else if(str[i]<='Z'&&str[i]>='A') str[i]+=32;puts(...
输入一串字符,以回车键结束,统计出其中的英文字母(包括大写及小写...
存到数组里面,循环这个数组。根据Asicc码值来比较,可以这样写 if(a[i]>='A'&&a[i]<='Z')这个就是表示A——Z的大写字母,其他的类似。
编写程序,将用户输入的一串字符(以回车结束)中的小写字母改为大写字母...
include <stdio.h> define N 50 void main(){ char s[N];int i=0;printf("输入字符串:\\n");scanf("%s",&s);printf("转换前的字符串为:%s\\n",s);while(s[i]!='\\0'){ if(s[i]>='a'&&s[i]<='z')s[i]-=32;i++;} printf("转换后的字符串为:%s\\n",s);} ...