C语言——自定义函数调用

news2024/11/17 0:24:27

今天,在完成大小写转换时遇到了一个问题:

注释:本VS版本为2022,使用了更为安全的scanf_s()函数

代码如下:

#include <stdio.h>
#include <stdlib.h>
void daxiaoxie(char *p,int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		if (p[i] >= 'A' && p[i] <= 'Z')
		{
			p[i] = p[i] + 32;
		}
	}
	for (i = 0; i < n; i++)
	{
		printf("%c", *(p + i));
	}
}
int main()
{
	int i = 0;
	int n;
	scanf_s("%d", &n);
	char* p = (char*)malloc(sizeof(char) * n);
	if (p == NULL)
	{
		printf("内存空间不足");
	}
	else
	{
		for (i = 0; i < n; i++)
		{
			scanf_s("%c", p + i);
		}
	}
	daxiaoxie(p, n);
	free(p);
	return 0;
}

当我输入5时

结果只有四个字符显示,b没有显示出来。

后来,经过查阅资料,我发现

改代码在使用 scanf_s函数读取整数后,输入缓冲区中可能残留一个换行符'\n'。这个换行符是由用户按下回车键后产生的,用于表示输入的结束。但是,这个换行符还存在于缓冲区,没有清除掉。当你接着用 scanf_s 函数读取字符时,如果输入缓冲区中存在换行符('\n'),scanf_s(" %c", p + i);会将这个换行符读取为第一个字符,而不是等待用户输入。所以会出现这个问题。

改正方法:

方法一

加入getchar函数

使用 getchar() 来读取并丢弃缓冲区中的换行符或其他多余的字符,在读取完整数后,加入getchar函数。

方法二

加入空格

使用 scanf_s 的空格前缀跳过所有前导空白字符,包括换行符

更正后的结果为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1981736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

奥运会Ⅶ--史上最快AI芯片“搜狐”,比B200快10倍

生成式AI推理的性价比是GPU的140倍。 大模型时代&#xff0c;全球算力短缺&#xff0c;买来铲屎的Nvidia市值被推上天。 如今&#xff0c;终于有一家公司拿出了自己的AI芯片来挑战。 今天早上&#xff0c;科技圈迎来一则重磅消息&#xff0c;美国芯片初创公司Etched推出了旗下…

以太网UDP测试实验

目录 一.UDP简介 1.1UDP概述 1.2UDP协议 二.实验任务 三.模块设计 3.1总体模块设计 3.2UDP模块设计 3.2.1udp_rx模块设计 3.2.2udp_tx模块设计 四.板级验证 一.UDP简介 1.1UDP概述 UDP &#xff08;User Datagram Protocol)用户数据协议 是一种面向无连接的传输层协…

65、zookeeper+kafka实现订阅号生产及阅读

前言回顾 elk es–elasticsearch l–logstash k–kibana f–filebeat 一、elkfk kafka带入集群当中 zookeeper集群kefka集群 zookeeper是一个开源的&#xff0c;分布式的&#xff0c;为分布式架构提供协调服务的APACHE的项目。 保存元数据。 1.1、zookeeper的工作机…

微信支付海外走红,中国企业跨境支付‘轻装上阵’

当我们谈论中国企业走向世界&#xff0c;拓展海外市场的征程时&#xff0c;一个不可忽视的助力者就是微信支付。它不仅是一个支付工具&#xff0c;更是连接中国企业和全球消费者的桥梁&#xff0c;让中国企业在海外也能享受到与国内同等的支付便利与信任。 早在2016年1 月 15 …

AGV的四点关键技术,你都了解吗?

AGV 在现代化工业的发展中&#xff0c;提倡高效&#xff0c;快速&#xff0c;可靠&#xff0c;提倡将人从简单的工作中解放出来。机器人逐渐替代了人出现在各个工作岗位上。机器人具有可编程、可协调作业和基于传感器控制等特点&#xff0c;自动导向小车&#xff08;Automated …

吃透张宇1000题和660题,能保底100分吗?

暑假已经过一半了&#xff0c;很多人都在埋头做题&#xff0c;如果你选择的是1000题660题 一定要好好看这篇笔记&#xff01; 因为很多人做题做到现在&#xff0c;有点迷茫 主要的迷茫点有三个&#xff1a; 1、为什么1000题和660题也都做不少了&#xff0c;遇到新题&#x…

[MRCTF2020]Ezpop1

打卡题目 代码审计 果我们把modifiy对象的var改为php伪协议&#xff0c;然后成功调用invoke魔术方法就可以读出flag 调用invoke魔术方法需要将对象当做一个函数来使用&#xff0c;这样invoke方法就会自动调用 <?php class Modifier { protected $var "php:…

多模态大模型系列解读

人类通过视觉、语言等多种表征媒介&#xff08;模态&#xff09;与世界互动&#xff0c;每种模态都可能在某个方面的表达和交流上有它自己的优势&#xff0c;融合在一起帮助我们更系统、更完整地理解这个世界。随着技术的发展&#xff0c;大预言模型基本实现独立自然的表达&…

IP 地址在 SQL 注入攻击中的作用及防范策略

数据库在各个领域的逐步应用&#xff0c;其安全性也备受关注。SQL 注入攻击作为一种常见的数据库攻击手段&#xff0c;给网络安全带来了巨大威胁。今天我们来聊一聊SQL 注入攻击的基本知识。 SQL 注入攻击的基本原理 SQL 注入是通过将恶意的 SQL 代码插入到输入参数中&#xf…

搭建pxe网络安装环境实现服务器自动部署(基于rhel7)

1.kickstart自动安装脚本制作 1.1开启主机图形 init 5 1.2打开vmware左上角的编辑&#xff0c;打开虚拟网络编译器 1.3安装/启动图形工具 kickstart ​ [rootrhel7 ~]# ls /root/ anaconda-ks.cfg initial-setup-ks.cfg [rootrhel7 ~]# less /root/anaconda-ks.cfg //此…

SSM相关

文章目录 SSM导坐标相关类config文件夹下result文件夹下其他文件夹下自定义异常类 拦截器相关分模块开发可选依赖&#xff08;不透明&#xff09;排除依赖&#xff08;不需要&#xff09;聚合继承 mvn命令 SSM 导坐标 <build><plugins><plugin><groupId…

【方法】如何给7Z压缩包添加密码?

在日常工作中&#xff0c;我们经常需要将文件或文件夹压缩成7Z压缩文件&#xff0c;这样可以节省空间或方便传输。对于重要而敏感的压缩文件&#xff0c;往往还需要设置密码保护。下面一起来看看如何给7Z压缩包添加密码。 我们可以使用7-ZIP解压缩软件&#xff0c;按以下步骤来…

Linux常用命令------文件管理

1.新建目录 mkdir是创建目录的命令 mkdir text mkdir 创建多个目录 mkdir -p a/b/c2.创建文件夹 touch是创建文件夹的命令 touch 文件名 touch 创建多个文件夹 touch a.txt b.txt c.txt3.删除文件 rm 是删除文件的目录删除一个文件&#xff1a; rm example.txt 强制删除一…

【EI稳定检索】第二届计算机技术与建模国际会议(ICCTM 2024)

第二届计算机技术与建模国际会议 2024 International Conference on Computer Technology and Modeling 【1】会议简介 第二届计算机技术与建模国际会议&#xff08;以下简称“该会议”&#xff09;是一个汇聚了全球科学家、学者、工程师及学生的重要学术盛会。会议旨在展示当前…

易捷OA协同办公软件 ShowPic 任意文件读取漏洞复现

0x01 产品简介 易捷OA协同办公软件是在“让管理更简单”和“实时协同”的理念的指导下&#xff0c;”本着“简约、实时、快捷、省钱”的产品定位&#xff0c;结合数千家客户的管理实践和当前最先进的IT技术开发出来的全新一代协同产品&#xff0c;在云计算、全文检索、手机应用…

打造零碳工厂,引领绿色发展新潮流

随着全球气候变化的加剧&#xff0c;我国政府提出了“双碳”战略&#xff0c;即力争在2030年前实现碳达峰、2060年前实现碳中和。企业作为国家经济的支柱&#xff0c;积极响应国家政策&#xff0c;推进自身可持续发展&#xff0c;是实现“双碳”目标的重要环节。国内多家头部新…

springboot 博客交流平台-计算机毕业设计源码56406

摘要 博客交流平台 作为一种重要的网络平台&#xff0c;为用户提供了展示自我、分享经验和与他人互动的空间。在国内外&#xff0c;研究者们关注博客交流平台 的各个方面&#xff0c;并取得了显著的进展。研究内容主要包括用户体验和界面设计、社交化和互动性、多媒体内容支持、…

EasyCVR视频转码:T3视频平台不支持GB28181协议,应该如何实现与视频联网平台的对接与视频共享呢?

EasyCVR视频管理系统以其强大的拓展性、灵活的部署方式、高性能的视频能力和智能化的分析能力&#xff0c;为各行各业的视频监控需求提供了优秀的解决方案。 T3视频为公网HTTP-FLV或HLS格式的视频流&#xff0c;目前T3平台暂不支持国标GB28181协议&#xff0c;因此也无法直接接…

【练习】使用DevEco Studio编写点赞案例

效果展示 效果说明 如果当前处于未点赞状态&#xff0c;那么点击将点赞数1&#xff0c;并且颜色变为粉色&#xff1b;如果当前已经处于点赞状态&#xff0c;那么点击点赞按钮&#xff0c;点赞数-1&#xff0c;并且颜色恢复为最初的颜色。 知识点 点击交互事件onClick http:…

海博思创HyperBlock II液冷储能系统荣获AS/NZS 3000国际认证

近日&#xff0c;海博思创的HyperBlock II液冷储能系统凭借卓越性能&#xff0c;荣获TV莱茵颁发的AS/NZS 3000认证证书。这标志着海博思创产品成功通过了澳大利亚和新西兰的产品检测认证&#xff0c;成为全球领先的储能产品之一。 AS/NZS 3000是全球领先的电工行业标准之一&…