编写c语言程序,从键盘输入一行以回车结束的字符,统计并输出输入字符的个数
时间: 2023-11-28 13:50:18 浏览: 215
以下是一个简单的C语言程序,可以实现从键盘输入一行以回车结束的字符,统计并输出输入字符的个数:
```
#include <stdio.h>
int main()
{
char c;
int count = 0;
printf("请输入一行字符:\n");
while ((c = getchar()) != '\n')
{
count++;
}
printf("输入的字符个数为:%d\n", count);
return 0;
}
```
程序的具体实现过程如下:
1. 首先定义一个字符变量 `c` 和一个整型变量 `count`,其中 `c` 用于存储输入的字符,`count` 用于记录输入的字符个数。
2. 然后通过 `printf()` 函数输出提示信息,要求用户输入一行字符。
3. 接着使用 `while` 循环读入每个字符,并判断是否为回车字符,如果不是则将 `count` 加 1,直到读入回车字符为止。
4. 最后使用 `printf()` 函数输出输入的字符个数。
注意:本程序只能统计输入字符的个数,不包括回车字符。如果要同时统计回车字符,可以将 `count` 的初始值设为 1。
相关问题
编写C语言程序:从键盘输入一行字符串(字符串长度小于等于1000),统计出其中的英文字母、空格、数字和其它字符的个数。输入以换行符结束。
#include <stdio.h>
int main()
{
char str[1000];
int letters = 0, spaces = 0, digits = 0, others = 0;
printf("请输入一行字符串:\n");
fgets(str, 1000, stdin); // 从键盘输入一行字符串
for (int i = 0; str[i] != '\0'; i++)
{
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
{
letters++; // 统计英文字母个数
}
else if (str[i] == ' ')
{
spaces++; // 统计空格个数
}
else if (str[i] >= '0' && str[i] <= '9')
{
digits++; // 统计数字个数
}
else
{
others++; // 统计其它字符个数
}
}
printf("英文字母个数:%d\n", letters);
printf("空格个数:%d\n", spaces);
printf("数字个数:%d\n", digits);
printf("其它字符个数:%d\n", others);
return 0;
}
C语言用户从键盘输入一行字符,分别统计其中英文字母大小写均含、数字字符和其他字符的个数并输出不计回车符号
在C语言中,你可以使用`ctype.h`库提供的函数来检查每个字符的类别,并统计各种类型的字符。下面是一个简单的程序示例,它会提示用户输入一行字符,然后计算字母、数字和其它字符的数量:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int alpha_count = 0, digit_count = 0, other_count = 0;
char input[100];
printf("请输入一行字符(不含回车符):");
fgets(input, sizeof(input), stdin);
// 删除末尾的换行符 '\n'
input[strcspn(input, "\n")] = '\0';
for (char c : input) {
if (isalpha(c)) { // 检查是否为字母
alpha_count++;
} else if (isdigit(c)) { // 检查是否为数字
digit_count++;
} else { // 其他字符(包括空格、标点等)
other_count++;
}
}
printf("大写字母:%d\n", alpha_count);
printf("小写字母:%d\n", alpha_count); // 因为ASCII码中大写和小写只相差一位
printf("数字字符:%d\n", digit_count);
printf("其他字符:%d\n", other_count);
return 0;
}
```
在这个程序中,我们使用了`isalpha()`函数检测字母,`isdigit()`函数检测数字。注意,由于ASCII码的特点,大写字母和小写字母的检测在这里可以合并,因为它们只是编码值上相差很小。
阅读全文