C语言编程,用while语句,输入一行字符统计字母的个数

如题所述

代码如下:

#include <stdio.h>

int main()

{

char c;

int letters=0,space=0,digit=0,other=0;

printf("请输入一行字符:");

while ((c=getchar())!='\n')

{

if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z')

{

letters++;

}

else if (c == ' ')

{

space++;

}

else if (c >= '0'&&c <= '9')

{

digit++;

}

else

{

other++;

}

}

printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",letters,space,digit,other);

return 0;

}

扩展资料

while的执行顺序

while 循环的执行顺序非常简单,它的格式是:

while (表达式)
{
语句;
}

当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。这个就是 while 的执行顺序。

注意,初学者编程时,if、else、for、while、do 后面的执行语句不论有多少行,就算只有一行也要加“{}”,养成良好的编程习惯尤为重要。

再来看一下 for 循环的格式:

for (表达式1;表达式2;表达式3)

在 for 循环的格式中,表达式 1、表达式 2 和表达式 3 在 while 循环中一个也不少,只不过不像 for 循环那样写在一起,而是分开写。在 while 循环中,循环变量 i 在定义的时候就给它赋初值,++i 则是写在 while 的循环体内。只有循环判断表达式与 for 一样,都是写在其后的括号中。

并且所有的 for 循环都可以转化成 while 循环,不仅如此,所有的 while 循环也都可以转化成 for 循环,for 循环和 while 循环可以相互转换。

参考资料来源:

百度百科——while语句

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-13

可以参考下面的代码:

//arg为要输入的字符串

int lettercout(char* arg)

{

char *tmp = arg;

int k = 0;

while(*tmp != '\0')

{

if((*tmp >='a'&&*tmp <='z')||(*tmp >= 'A'&&*tmp <= 'Z'))

k++;

tmp ++;

}

return k;

}

扩展资料:

while语句语法如下:

1、Pascal

while <条件> do <语句>

意为当条件符合时,接着做下面的语句;不符合时,退出循环。

2、C

do <语句> while(<条件>);

while(<条件>) <语句>;

3、C++

while(<条件>) <语句>;

do <语句> while(<条件>);

注意:do...while 循环是 while 循环的变种。

参考资料来源:百度百科-while (循环语句及英文单词)

本回答被网友采纳
第2个回答  推荐于2016-05-12
//arg为要输入的字符串
int lettercout(char* arg)
{
    char *tmp = arg;
    int k = 0;
    while(*tmp != '\0')
    {
        if((*tmp >='a'&&*tmp <='z')||(*tmp >= 'A'&&*tmp <= 'Z'))
            k++;
        tmp ++;
    }
    return k;
}

本回答被提问者采纳
第3个回答  2015-11-06
#include<stdio.h>
int main(){
    char c;
    int count  = 0;
    while(c=getchar(),c!='\n'){
        if((c>='a' && c<='z')||(c>='A' && c<='Z') ){
            count ++;
        }
    }
    printf("字母个数是:%d\n",count);
    return 0;
 }

本回答被网友采纳
第4个回答  2015-11-06
追答

用那个什么码

就行拉

相似回答