c语言:编写程序,从键盘输入80个字符,统计其中数字字符的个数,并输出统计结果

c语言:编写程序,从键盘输入80个字符,统计其中数字字符的个数,并输出统计结果,第1张

可以参考下面的代码:#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;}

扩展资料:

printf()函数函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:int printf(const char format, );函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值,printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);while语句的一般表达式为:while(表达式){循环体}。参考资料来源:百度百科-printf()参考资料来源:百度百科-while (循环语句及英文单词)

本程序最多能输入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语言怎么计算字符串的字符个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9847722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存