可以参考下面的代码:#include <stdioh>intmain(){inta,b,c,ch;a=b=c=0;//计数器初始化为0while((ch=getchar())!='\n')//循环读取字符,到换行结束。{if(ch>='0' && ch<='9')//数字a++;else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母b++;else//其它c++;}printf("%d%d%d\n",a,b,c);//输出结果。return0;}
扩展资料:
本程序最多能输入255个字符包括回车,输出统计时,第一个数字是数字字符个数,第二个是字母,第三个是其它。
assume cs:code,ds:data
data segment
da1 db 255
da2 db
da3 db 255 dup ()
data ends
stack segment stack
db 256 dup ()
stack ends
code segment
start:
mov ax,data
mov ds,ax
lea dx,da1 ;输入字符串
mov ah,10
int 21h
lea bx,da3 ;统计字符串
xor cx,cx
xor ax,ax
xor dx,dx
mov cl,da2
again:
mov ah,[bx]
if ah >= '0' && ah <= '9' ;数字,al加1
inc al
elseif ah >= 'A' && ah <= 'Z' ;字母,dh加1
inc dh
elseif ah >= 'a' && ah <= 'z'
inc dh
else
inc dl ;其它,dl加1
endif
inc bx
loop again
call putout ;输出数字个数
mov al,dh
call putout ;输出字母个数
mov al,dl
call putout ;输出其它字符个数
mov ax,4c00h
int 21h
putout: ;以16进制形式输出al中的数据
push bx
push dx
xor ah,ah
push ax
mov dl,13 ;换行
mov ah,2
int 21h
mov dl,10
mov ah,2
int 21h
pop ax
mov bl,16
div bl ;使高位与低位分离
if al>9 ;转换成字符
add al,40h
endif
add al,30h
if ah>9
add ah,40h
endif
add ah,30h
mov bl,ah ;保存低位
mov dl,al ;输出高位
mov ah,2
int 21h
mov dl,bl ;输出低位
mov ah,2
int 21h
pop dx
pop bx
ret
code ends
end start
一般有三种办法可以计算英文字符的个数:
1)使用strlen()函数
2)从首字符开始,边扫描边计数,到'\0'为止('\0'不计数)
3)从首字符开始,扫描到'\0'为止,'\0'地址与字符串首地址的差。
如下:
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
int num=0,i;
cout<<"请输入一行字符:"<<endl;
cin>>s;
for(i=0;i<slength();i++){
if(s[i]>='0'&&s[i]<='9')
num++;
}
cout<<"该字符串中共有 "<<num<<"数字字符。"<<endl;
return 0;
}
程序应改为如下代码:
#include<stdioh>
#include<stdlibh>
void main()
{
long nc;
nc = 0;
while(getchar() != '\n')
++nc;
printf("%d\n",nc);
system("PAUSE");
}
原因是当你敲下回车时,代表开始统计字符数量,而C语言中,EOF常被作为文件结束的标志。你判断用EOF,当敲下回车时程序是开始执行while语句了,但是程序的输入流并未关闭,所以之后程序就不会再继续向下执行了,希望对你有帮助,如果有其他问题请追问
以上就是关于c语言:编写程序,从键盘输入80个字符,统计其中数字字符的个数,并输出统计结果全部的内容,包括:c语言:编写程序,从键盘输入80个字符,统计其中数字字符的个数,并输出统计结果、用汇编语言设计程序:从键盘输入若干字符(输入回车结束),统计其中字符、数字、其他类的个数、c语言怎么计算字符串的字符个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)