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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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语句

参考技术A

可以参考下面的代码:

//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 (循环语句及英文单词)

参考技术B //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;

本回答被提问者采纳
参考技术C #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;
 

参考技术D 追答

用那个什么码

就行拉

C语言编程-9_4 字符统计

输入一个字符串(其长度不超过81),分别统计其中26个英文字母出现的次数(不区分大、小写字母),并按字母出现次数从高到低排序,若次数相同,按字母顺序排列。字母输出格式举例,例如:A-3,表示字母A出现3次,C-0表示字母C没有出现。

       输入:

       第一行为输入,占一行,输入的字符串可能含有空格

       输出:

       第二行为输出,占一行。按照字母输出格式从高到低输出,各字母输出之间用一个空格字符分隔。

       样例:

       123abcAABXxwvUu+

       A-3 B-2 U-2 X-2 C-1 V-1 W-1 D-0 E-0 F-0 G-0 H-0 I-0 J-0 K-0 L-0 M-0 N-0 O-0   P-0 Q-0 R-0 S-0 T-0 Y-0 Z-0 

//插入排序法
#include<stdio.h>
#include<string.h>


int main()

char str[81] = "123abcAABXxwvUu+";
gets(str);
int letter_stat[26] = 0;
char letter[26] = ‘ ‘ ;
for (int i = 0; i < 26; i++)

letter[i] = i + ‘A‘;

int i = 0;
while (str[i])

int k = 0;
if (str[i] >= ‘A‘&&str[i] <= ‘Z‘)

k = str[i] - ‘A‘;
letter_stat[k]++;

else if (str[i] >= ‘a‘&&str[i] <= ‘z‘)

k = str[i] - ‘a‘;
letter_stat[k]++;

i++;


for (int i = 0; i < 26; i++)

int k = letter_stat[i];
int temp = letter[i];
int j = i - 1;
while (j >= 0 && letter_stat[j] < k)

letter_stat[j + 1] = letter_stat[j];
letter[j + 1] = letter[j];
j--;

letter_stat[j + 1] = k;
letter[j + 1] = temp;

for (int i = 0; i < 25; i++)

printf("%c-%d ", letter[i],letter_stat[i]);

printf("%c-%d", letter[25], letter_stat[25]);
return 0;

//冒泡排序法
#include<stdio.h>
#include<string.h>


int main()

char str[81] = "123abcAABXxwvUu+";
gets(str);
int letter_stat[26] = 0;
char letter[26] = ‘ ‘ ;
for (int i = 0; i < 26; i++)

letter[i] = i + ‘A‘;

int i = 0;
while (str[i])

int k = 0;
if (str[i] >= ‘A‘&&str[i] <= ‘Z‘)

k = str[i] - ‘A‘;
letter_stat[k]++;

else if (str[i] >= ‘a‘&&str[i] <= ‘z‘)

k = str[i] - ‘a‘;
letter_stat[k]++;

i++;

for (int i = 0; i < 25; i++)
for (int j = 0; j < 25 - i; j++)


if (letter_stat[j] < letter_stat[j + 1])

int temp = letter_stat[j + 1];
letter_stat[j + 1] = letter_stat[j];
letter_stat[j] = temp;

temp = letter[j + 1];
letter[j + 1] = letter[j];
letter[j] = temp;





for (int i = 0; i < 25; i++)

printf("%c-%d ", letter[i],letter_stat[i]);

printf("%c-%d", letter[25], letter_stat[25]);
return 0;

--------------------- 

以上是关于C语言编程,用while语句,输入一行字符统计字母的个数的主要内容,如果未能解决你的问题,请参考以下文章

c语言 用指针方法处理:输入一行字符,统计并输出其中大写字母、小写字母、空格、数字及其它字符的个数。

怎么用c语言编写程序:用户从键盘输入一行字符,分别统计其中的英文字母,空格,数字占字符总数的百分比

C++ 输入一行字符,分别统计出其中英文字母个数~~

输入一个字符串,统计其中包含的单词个数,假设单词与单词之间用空格分隔。

C语言 分离字符串中的字母、数字、符号

C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开