上海十三五交通规划:C语言的一道题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 18:16:48
我是一个刚学TC2.0的菜鸟~~~有一题想请教一下高手~~希望有一个详细的答复,非常感谢!!!!!!!题目是:输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数~~~~
回复5楼:is系列的函数还没学~~~完全看不懂

更正楼上的几个小错误:
#include <stdio.h>
main()
{
int english=0,kongge=0,shuzi=0,others=0;
char c;
while((c=getchar())!='\n'))/*输入字符不是回车就进入循环*/
{
if((c>='a' &&c<='z')||(c>='A'&&c<='Z')) english++;
else if(c>='0'&&c<='9') shuzi++;
else if(c==' ') kongge++;
else others++;
printf("英文字母有%d个,空格有%d个,数字有%d个,其他字符有%d个\n",english,kongge,shuzi,others);
}

#include <string.h>
#include <stdio.h>
main()
{
int english=0,kongge=0,shuzi=0,others=0;
char c;
while(c=getchar()!=\0)
{
if((c>='a' &&c<='z')||(c>='A'&&c<='Z'))
{
english++;
}
else
if(c>='0'&&c<='9')
{
shuzi++;
}
else
if(c==' ')
{
kongge++;
}
else
others++;
printf("英文字母有%d个,空格有%d个,数字有%d个,其他字符有%d个\n",english,kongge,shuzi,others);
}

让我来教教你吧,刚考出3级来,觉得那些东西还没忘。

看看你的问题,其实第一行是c语言中定义的标示符,如果住函数中有用到函数的,则必须有这句话,否则系统将出现错误。
第五六行,是用户标示符,int 是规定那些字母全部市政行数,且初值是0
第七行,while是一个循环语句,当然第一个有点错误,看隔壁的虫子的,那句话表示“输入字符不是回车就进入循环”。
第八行,if是一个判断语句。

其实这些东东在你不断的学习中,你会慢慢学会的。(不用着急)学习的时候,多上机演练程序,对你的提高会有很大帮助的。

#include <stdio.h> /*基本输入输出头文件,其中包括scanf(),printf(),gets()等常用函数*/
#include <ctype.h> /*本程序中使用到了is系列的一些函数*/

#define MAX 1000 /*输入字符串的最大长度*/

int main()
{
char str[MAX]; /*存放输入字符串*/
int digitNumber, /*数字个数*/
letterNumber, /*字母个数*/
blankNumber, /*空格个数*/
otherCharNumber; /*其他字符个数*/
int loopCount; /*程序中使用到的一个专门用于循环计数的变量*/

while(gets(str) != NULL) /*读入字符串*/
{
/*初始化数字个数,字母个数,空格个数和其他字符个数*/
digitNumber=0;
letterNumber=0;
blankNumber=0;
otherCharNumber=0;

/*统计,本程序的核心代码段*/
for(loopCount = 0; str[loopCount] != '\0'; loopCount ++)
{
/*
使用到了is系列的函数,如果满足is条件,返回值是一个非零的整数。比如,对于
isalpha(ch),如果ch是一个字母,那么返回值是非零的。当然也可以通过其他方法来
判断,但是那种程序可能会不稳定,因为不同的情况下,使用的编码表不一定是一样
的,所以,使用is系列的函数是很有必要的
*/
/*如果是字母,字母个数加1*/
if(isalpha(str[loopCount]) != 0)
letterNumber ++;
/*如果是数字,数字个数加1*/
else if(isdigit(str[loopCount]) != 0)
digitNumber ++;
/*如果是空格,空格个数加1*/
else if(str[loopCount] == ' ')
blankNumber ++;
else
otherCharNumber ++;
}
}

/*程序输出部分*/
printf("There are %d letters!\n",letterNumber);
printf("There are %d digits!\n",digitNumber);
printf("There are %d blanks!\n",blankNumber);
printf("There are %d other characters!\n",otherCharNumber);
return 0;
}

这个问题这么经典?我看到过5个人问!