C语言简单练习题之键盘输入一个字符数组,将其中的大写字母删除。

键盘输入一个字符数组,将其中的大写字母删除。

例如:输入  asdWSE125

   输出  asd125

#include<stdio.h>

#include<string.h>
int main()
{
char a[100];
int n,i;
gets(a);
n=strlen(a);
for(i=0;i<=n-1;i++)
{
if(a[i]<97&&a[i]>122)
printf("%c",a[i]);
}
return 0;

字符串的键盘输入用到的是gets(),scanf()无法实现字符串的连续输入,具体区别为scanf()不能接收包括空格的字符串。

通过for循环遍历字符串数组,ascii值在97~122之间的为英文大写字母,当遍历到它们时,不执行输出语句。

本文为本人在学习C语言时,自己做过的习题,如有雷同,望谅解。

如果对你有帮助,请给我一个赞,谢谢!

<think>好的,我需要帮用户找到一个用C语言编写的统计字符串大写字母个数的程序示例。用户要求输入以回车结束,字符串长度小于80。我需要参考提供的引用内容,看看有没有相关的代码示例。 首先,查看引用[1],里面有一个统计小写、大写字母和数字的程序。这段代码用了gets(str)来读取输入,然后遍历字符串,通过条件判断统计各类字符的数量。特别是大写字母的条件判断是str[i] >= 'A' && str[i] <= 'Z',这部分可以直接用来统计大写字母的数量。所以可以引用这段代码作为基础。 接下来,引用[3]和引用[5]也涉及统计大写辅音字母,其中同样有判断大写字母的部分,但额外排除了元音字母。过用户只需要统计所有大写字母需要排除,所以可以忽略排除元音的部分,只保留判断是否在大写字母范围内的条件。 引用[4]中的代码将大写字母转换为小写,这可能适用于当前需求,但其中的输入处理和循环结构可以参考。用户提到输入以回车结束,所以使用gets或者fgets可能合适,但要注意安全性。过用户示例中使用了gets,虽然安全,但在练习题中常见。过可以建议使用fgets(str, 80, stdin)来替代,以避免缓冲区溢出。 现在需要整合这些信息。核心步骤是:读取字符串,遍历每个字符,判断是否为大写字母(A-Z),统计数量。然后输出结果。 在代码结构方面,主函数应包括字符数组声明、输入处理、循环遍历统计、输出结果。例如: 1. 声明char str[80]来存储字符串。 2. 使用gets(str)或fgets读取输入,但要注意fgets会包括换行符,可能需要处理。 3. 初始化计数器count为0。 4. 遍历字符串直到遇到'\0',每个字符检查是否在'A'到'Z'之间,如果是,count加1。 5. 最后打印count的值。 需要确保代码符合C语言语法,比如正确的循环结构,条件判断,以及正确的输入输出函数使用。此外,用户提到字符串长度小于80,所以数组大小设为80足够,但考虑到结尾的'\0',可能需要81的大小,但引用中的示例都使用80或81,这里根据用户要求使用80。 检查引用中的示例,比如引用[1]中的代码直接统计大写字母,可以直接参考。因此,可以基于引用[1]的代码结构,提取其中的大写字母统计部分,去掉小写和数字的统计,形成所需的程序。 最后,确保代码示例正确,且符合用户的要求:输入以回车结束,字符串长度小于80,输出大写字母的数量。同时,可能需要提醒用户注意gets函数的安全性,建议使用更安全的函数,但用户示例中使用了gets,所以这里保持一致性。</think>### C语言统计字符串大写字母个数示例代码 根据题目需求,可以通过以下步骤实现统计功能: 1. 创建字符数组存储输入字符串 2. 使用`gets()`函数接收输入(注意:实际开发中建议用`fgets()`替代) 3. 遍历字符串统计大写字母 4. 输出统计结果 ```c #include <stdio.h> int main() { char str[80]; // 存储输入字符串 int count = 0; // 大写字母计数器 printf("请输入字符串:"); gets(str); // 读取输入(回车结束) // 遍历统计大写字母 for(int i=0; str[i]!='\0'; i++) { if(str[i] >= 'A' && str[i] <= 'Z') { count++; } } printf("大写字母数量:%d\n", count); return 0; } ``` **执行流程说明**: 1. `char str[80]`:声明最大容纳79个字符+结束符的数组[^1] 2. `gets(str)`:读取整行输入直到遇到换行符(注意:该函数检查缓冲区大小)[^1] 3. `for`循环:逐个检查字符是否在$A$-$Z$的ASCII范围内[^3] 4. 条件判断:`str[i] >= 'A' && str[i] <= 'Z'`筛选大写字母[^1] **注意事项**: - 实际开发中建议使用`fgets(str, 80, stdin)`替代`gets()`以避免缓冲区溢出 - 输入字符串长度超过79时会截断,需手动处理末尾换行符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值