c语言完成: 程序功能:编写程序,运行时输入一行字符串,分别统计出11中英文字母、数字等个数,如输入 “I like 123”,则输出:英文字母:5,数字:3,其它:2。
时间: 2023-08-31 22:21:01 浏览: 143
C语言符号全集
### 回答1:
你可以使用 `getchar()` 函数来逐个获取输入的字符,然后根据字符的类型来统计不同的字符数量。
下面是一个例子:
```
#include <stdio.h>
int main() {
int letters = 0, digits = 0, others = 0;
char c;
while ((c = getchar()) != '\n') { // 读取一行字符
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { // 判断是否为英文字母
letters++;
} else if (c >= '0' && c <= '9') { // 判断是否为数字
digits++;
} else { // 其它字符
others++;
}
}
printf("英文字母: %d, 数字: %d, 其它: %d\n", letters, digits, others);
return 0;
}
```
在终端中运行程序后,你可以输入一行字符串,然后程序会统计出英文字母、数字和其它字符的数量。
例如,输入 "I like 123" 后,程序会输出: "英文字母: 5, 数字: 3, 其它: 2"。
### 回答2:
以下是使用C语言编写的完整程序:
```c
#include <stdio.h>
int main() {
char str[100];
printf("请输入一行字符串:");
gets(str);
int count_alphabet = 0;
int count_digit = 0;
int count_other = 0;
for (int i = 0; str[i] != '\0'; i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
count_alphabet++;
} else if (str[i] >= '0' && str[i] <= '9') {
count_digit++;
} else {
count_other++;
}
}
printf("英文字母:%d,数字:%d,其他:%d\n", count_alphabet, count_digit, count_other);
return 0;
}
```
程序的主要思路是使用一个字符数组 `str` 存储用户输入的字符串。然后,通过遍历每一个字符,判断其属于英文字母、数字还是其他字符,并分别计数。最后,打印出相应的统计结果。
注意,这里使用了 `gets()` 函数来接收用户的输入,但该函数存在安全问题,因此在实际开发中应该避免使用。更好的替代方案是使用 `fgets()` 函数。
由于字符数组 `str` 的大小限制在 100 个字符,因此输入的字符串长度不应该超过 99 个字符,否则可能导致越界问题。
### 回答3:
#include <stdio.h>
#include <ctype.h>
#define MAX_SIZE 100
int main() {
char line[MAX_SIZE];
int i, letterCount = 0, digitCount = 0, otherCount = 0;
printf("请输入一行字符串:");
fgets(line, sizeof(line), stdin);
for (i = 0; line[i] != '\0'; i++) {
if (isalpha(line[i])) { // 判断是否为字母
letterCount++;
} else if (isdigit(line[i])) { // 判断是否为数字
digitCount++;
} else if (line[i] != ' ' && line[i] != '\n') { // 判断是否为其他字符
otherCount++;
}
}
printf("英文字母:%d,数字:%d,其他:%d\n", letterCount, digitCount, otherCount);
return 0;
}
阅读全文