当前位置: 代码迷 >> C语言 >> [求助]编写一个程序,统计字母、数字等符号的个数。
  详细解决方案

[求助]编写一个程序,统计字母、数字等符号的个数。

热度:387   发布时间:2007-08-03 16:23:41.0
[求助]编写一个程序,统计字母、数字等符号的个数。
编写一个程序,要求用户输入一个字符序列后,分别统计出字母、数字、空白符和其他字符的个数。
搜索更多相关的解决方案: 字母  数字  符号  编写  

----------------解决方案--------------------------------------------------------
随便写了个,其实C99有个函数isblank()读空格的。
好像机器不支持,呵呵,这个编的很懒,输入格式什么的自己改吧,其实自己写函数也不难,就拿ASII比较而已!
#include<ctype.h>
#include<stdio.h>
#include<string.h>
int main()
{
int num[4];
for(int i=0;i<4;i++)num[i]=0;
char ch;
do
{
ch=getchar();
if(isalpha(ch))num[0]++;
else if(isdigit(ch))num[1]++;
else if(ch==' ')num[2]++;
else num[3]++;
}while(ch!='.');
printf("%d %d %d %d",num[0],num[1],num[2],num[3]);
return 0;
}
----------------解决方案--------------------------------------------------------
把字符序列存放到数组里a[N],然后对数组里的每一个字符进行判断
for(i=0;i<N;i++)
{if (a[i]==0) n1++ //n1代表空白符的个数
else if (48<=a[i]<=57) n2++ //n2为数字个数
同样的,写出其他的就行了}

----------------解决方案--------------------------------------------------------
以下是引用medicihophy在2007-8-3 16:43:07的发言:
随便写了个,其实C99有个函数isblank()读空格的。
好像机器不支持,呵呵,这个编的很懒,输入格式什么的自己改吧,其实自己写函数也不难,就拿ASII比较而已!
#include<ctype.h>
#include<stdio.h>
#include<string.h>
int main()
{
int num[4];
for(int i=0;i<4;i++)num[i]=0;
char ch;
do
{
ch=getchar();
if(isalpha(ch))num[0]++;
else if(isdigit(ch))num[1]++;
else if(ch==' ')num[2]++;
else num[3]++;
}while(ch!='.');
printf("%d %d %d %d",num[0],num[1],num[2],num[3]);
return 0;
}

问你一下,isalpha()和isdigit()作用是什么啊


----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/viewthread.php?tid=159987&extra=&page=10#266379
----------------解决方案--------------------------------------------------------

#include <ctype.h>
int isalpha( int ch );
功能:如果参数是字母字符,函数返回非零值,否则返回零值。
例如:
char c;
scanf( "%c", &c );
if( isalpha(c) )
printf( "You entered a letter of the alphabet\n" );

int isdigit( int ch );
功能:如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值.
例如:
char c;
scanf( "%c", &c );
if( isdigit(c) )
printf( "You entered the digit %c\n", c );


----------------解决方案--------------------------------------------------------
yes,又学到了~~~
----------------解决方案--------------------------------------------------------
  相关解决方案