用C语言编写,用gets函数从键盘输入一行包括空格的字符串(字符串的长度小于100),统计其中英文字母的个数. 【输入形式】asdf 56 yui 【输出形式】The number of letter is: 7
时间: 2024-03-19 11:43:06 浏览: 136
可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, count = 0;
printf("请输入一个包括空格的字符串:");
gets(str);
len = strlen(str);
for (int i = 0; i < len; i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
count++;
}
}
printf("The number of letter is: %d\n", count);
return 0;
}
```
这段代码使用 `gets` 函数获取用户输入的字符串,使用 `strlen` 函数获取字符串长度,然后使用循环遍历字符串中的每个字符,判断是否为英文字母,如果是,则计数器加一。最后输出计数器的值即可。注意,`gets` 函数不太安全,不建议在实际开发中使用,可以使用 `fgets` 函数代替。
相关问题
用C语言编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串并在主函数中输出统计结果。 输入 任意一个字符串(长度小于80)。 输出 统计其中的英文字母、数字、空格以及其他字符的个数。
以下是C语言代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void countChars(const char *str, int *letters, int *digits, int *spaces, int *others) {
while (*str) {
if (isalpha(*str)) {
(*letters)++;
} else if (isdigit(*str)) {
(*digits)++;
} else if (isspace(*str)) {
(*spaces)++;
} else {
(*others)++;
}
str++;
}
}
int main() {
char str[80];
int letters = 0, digits = 0, spaces = 0, others = 0;
printf("请输入一个字符串:");
gets(str); // 读取输入字符串
countChars(str, &letters, &digits, &spaces, &others);
printf("字母个数:%d\n", letters);
printf("数字个数:%d\n", digits);
printf("空格个数:%d\n", spaces);
printf("其他字符个数:%d\n", others);
return 0;
}
```
在该程序中,`countChars`函数接收一个指向字符串的指针和四个整型指针,分别用于记录字母、数字、空格和其他字符的个数。在函数中,使用`isalpha`、`isdigit`和`isspace`等标准库函数判断字符属于哪一类,然后逐个统计各类字符的个数。
在`main`函数中,先读取用户输入的字符串,然后调用`countChars`函数统计各类字符的个数,最后输出统计结果。
需要注意的是,该程序中使用了`gets`函数读取输入字符串,但是该函数存在安全漏洞,不建议在实际生产代码中使用。建议使用更加安全的`fgets`函数代替。
用c语言编写使用 gets()函数输入一个任意字符的字符串,一个字符串由若干个部分组成,每部分之 间用一个或多个空格隔开,要求提取每部分的字符存到一个二维字符数组内,并且输出 二维数组中的数据。
在C语言中,你可以使用`gets()`函数来获取用户输入的一行字符串,然后通过循环和分割处理,将字符串拆分成各个部分并存储到二维字符数组中。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_PARTS 10 // 假设最多有10部分
#define MAX_LINE_LENGTH 100 // 每行最大长度
// 定义二维字符数组结构
char parts_array[MAX_PARTS][MAX_LINE_LENGTH];
int main() {
char line[MAX_LINE_LENGTH]; // 用于存放整个输入的字符串
int part_count = 0; // 记录部分数量
char* current_part = line; // 当前正在处理的部分
// 使用gets()读取一行输入
fgets(line, sizeof(line), stdin);
// 移除字符串尾部的换行符
if (line[strlen(line) - 1] == '\n') {
line[strlen(line) - 1] = '\0';
}
// 分割字符串并存储到二维数组
while (*current_part != '\0' && part_count < MAX_PARTS) {
// 找到空格分隔的位置
char* space = strchr(current_part, ' ');
// 如果找到了空格,则截取部分并存储
if (space) {
*space = '\0';
strcpy(parts_array[part_count], current_part); // 将当前部分复制到二维数组
part_count++; // 增加部分计数
current_part = space + 1; // 更新当前部分位置
} else { // 如果没找到空格,意味着已经到达了最后一部分
strcpy(parts_array[part_count], current_part); // 存储剩余部分
break;
}
}
// 输出二维数组的内容
for (int i = 0; i < part_count; i++) {
printf("Part %d: %s\n", i+1, parts_array[i]);
}
return 0;
}
阅读全文