c语言 统计数组中数字和英文字母
时间: 2023-11-26 15:39:45 浏览: 167
的个数应该怎么做?
你可以使用ASCII码来判断每个字符是数字还是英文字母,其中数字的ASCII码范围是48~57,英文字母的范围是65~90和97~122。可以使用循环遍历数组中每个元素,判断其ASCII码是否在数字或英文字母的范围内,如果是就相应地增加数字或英文字母的个数。具体代码如下:
```c
#include <stdio.h>
int main()
{
char arr[100];
int i, digits = 0, letters = 0;
printf("请输入一个字符串:");
gets(arr);
for(i=0; arr[i]!='\0'; i++)
{
if((arr[i]>='0' && arr[i]<='9'))
digits++;
else if((arr[i]>='A' && arr[i]<='Z') || (arr[i]>='a' && arr[i]<='z'))
letters++;
}
printf("数字个数为:%d\n", digits);
printf("字母个数为:%d\n", letters);
return 0;
}
```
相关问题
C语言用数组实现输入一行英文句子,统计其中有多少个单词,单词之间用空格分开,单独的数值不计入单词数。
可以按照以下步骤实现:
1. 定义一个字符串数组 `str` 来存放输入的英文句子。
2. 通过 `fgets()` 函数从标准输入中读取一行英文句子,存放到 `str` 中。
3. 定义一个变量 `count` 来记录单词数,初始值为 0。
4. 遍历 `str` 中的每个字符,如果当前字符是空格,则说明前面是一个单词,将 `count` 加 1。需要注意的是,如果前面的字符是数字或者标点符号,也不能算作单词。
5. 输出统计结果,即单词数。
下面是具体的代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[1000];
printf("请输入一行英文句子:");
fgets(str, 1000, stdin);
int i, count = 0;
for (i = 0; str[i] != '\0'; i++) {
if (isspace(str[i])) { // 判断当前字符是否为空格
if (isalpha(str[i - 1])) { // 判断前一个字符是否是字母
count++;
}
}
}
if (isalpha(str[i - 2])) { // 如果最后一个字符是字母,则单词数加 1
count++;
}
printf("单词数为:%d\n", count);
return 0;
}
```
需要注意的是,在判断前一个字符是否是字母时,需要用到 `<ctype.h>` 头文件中的 `isalpha()` 函数,该函数用来判断一个字符是否是字母。同时,在遍历完整个字符串后,还需要判断最后一个字符是否是字母,如果是,则单词数也需要加 1。
用c语言输入一行字符,分别统计出其中大写英文字母、小写英文字母、数字和其它字符的个数,采用数组完成字符的存储。
下面是一个用 C 语言实现的统计输入字符串中数字、大写字母、小写字母和其他字符个数的程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
int digits = 0, uppercase = 0, lowercase = 0, others = 0;
printf("请输入一行字符串:");
fgets(input, 100, stdin);
for (int i = 0; input[i] != '\0'; i++) {
if (isdigit(input[i])) {
digits++;
} else if (isupper(input[i])) {
uppercase++;
} else if (islower(input[i])) {
lowercase++;
} else {
others++;
}
}
printf("数字个数:%d\n", digits);
printf("大写字母个数:%d\n", uppercase);
printf("小写字母个数:%d\n", lowercase);
printf("其他字符个数:%d\n", others);
return 0;
}
```
程序中使用了 `fgets` 函数读取输入的字符串,`isdigit`、`isupper`、`islower` 函数分别判断字符是否为数字、大写字母、小写字母,然后统计个数并输出。
阅读全文