当前位置: 首页 > news >正文

【C】数组及其字符串

数组及其字符数组的基本知识点,以及一个编写一个系统登录界面,输入用户名(chen)和密码(1234),用户名只能输入字符8位,密码只能输入数字12位,使用光标定位函数

例:编写一个系统登录界面,输入用户名(chen)和密码(1234),用户名只能输入字符8位,密码只能输入数字12位,使用光标定位函数

#include<stdio.h>
#include <windows.h>//gotoxy()函数头文件
#include<conio.h>//getch()函数头文件void gotoxy(int x, int y)//形参
{HANDLE hOut;COORD pos = {x, y};// 光标的起始位(第1列,第3行) 0是第1列 2是第3行hOut = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOut, pos);//printf("定位光标位置搜索(%d,%d)\n",pos.X,pos.Y);
}
void paintWindow(int startX,int startY,int width,int height)
{int i=0;int j=0;//起始位置gotoxy(startX,startY);printf("╔");for(i=0;i<width-2;i++){printf("═");}printf("╗");for(j=0;j<height-2;j++){gotoxy(startX,startY+1+j);printf("║");for(i=0;i<width-2;i++){printf(" ");}printf("║");}gotoxy(startX,startY + height-1);printf("╚");for(i=0;i<width-2;i++){printf("═");}printf("╝");gotoxy(20,7);printf("OrderDish点菜系统");
}int main()
{int i=0;char ch;int count=0;char userName[20]={0};char passwd[20]={0};paintWindow(5,5,50,20);gotoxy(15,10);printf("用户名:");gotoxy(15,12);printf("密码:");gotoxy(22,10);while(1){while(1){ch=getch();if(count>=8)//只能输入8位{break;}if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){userName[i]=ch;putch(ch);i++;count++;}else if(ch==13) break;//13为回车的ascll码值else if(ch=='\b')//删除的转义字符{if(count>0){printf("\b \b");count--;userName[i]='\0';}}}gotoxy(22,12);count=0;i=0;while(1){ch=getch();if(count>=12)//只能输入12位{break;}if(ch>='0'&&ch<='9'){passwd[i]=ch;putch('*');i++;count++;}else if(ch==13) break;else if(ch=='\b')//删除的转义字符{if(count>0){printf("\b \b");count--;passwd[i]='\0';}}}gotoxy(22,18);if(strcmp(userName,"chen")==0&&strcmp(passwd,"1234")==0){printf("登录成功!\n");break;}else{printf("用户名或密码错误!请重新输入!");i=0;count=0;memset(userName,0,sizeof(userName));//将数组里的值初始化memset(passwd,0,sizeof(passwd));system("cls");//刷新屏幕paintWindow(5,5,50,20);gotoxy(15,10);printf("用户名:");gotoxy(15,12);printf("密码:");gotoxy(24,10);}}return 0;
}

相关文章:

【C】数组及其字符串

数组及其字符数组的基本知识点&#xff0c;以及一个编写一个系统登录界面&#xff0c;输入用户名&#xff08;chen&#xff09;和密码&#xff08;1234&#xff09;&#xff0c;用户名只能输入字符8位&#xff0c;密码只能输入数字12位&#xff0c;使用光标定位函数 例&#xf…...

Python 代码实现对《红楼梦》文本的词频统计和数据可视化

Python 代码主要实现了对《红楼梦》文本的词频统计和数据可视化 完整详细下载地址&#xff1a;https://download.csdn.net/download/huanghm88/89879439 python """ 实训4 基于词频的篇章语义相似度与红楼梦内容分析 步骤3 针对红楼梦词频的数据可视化 &qu…...

yjs机器学习数据操作01——数据的获取、可视化

数据的获取 1.库与模块&#xff1a; import sklearnfrom sklearn import datasets 2.数据集获取的API及解释 对于sklearn的数据获取&#xff0c;主要分为两大部分&#xff0c;分别是“小数据集的获取——load_xxx”和“大数据集的获取fetch_xxx” a.datasets.load_xxx(): …...

w~自动驾驶合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12320882 #自动驾驶数据集全面调研 自动驾驶技术在硬件和深度学习方法的最新进展中迅速发展&#xff0c;并展现出令人期待的性能。高质量的数据集对于开发可靠的自动驾驶算法至关重要。先前的数据集调研试图回顾这些数据集&…...

232. 用栈实现队列 【复习链表】-用自定义链表实现栈 用栈实现队列

232. 用栈实现队列 已解答 简单 相关标签 相关企业 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队…...

G-Set(增长集合,Grow-Only Set)

一、概念 G-Set&#xff08;增长集合&#xff0c;Grow-Only Set&#xff09;是一种冲突自由复制数据类型&#xff08;Conflict-Free Replicated Data Type, CRDT&#xff09;&#xff0c;用于在分布式系统中同步和合并数据&#xff0c;而不需要中央协调器。G-Set 支持两种操作…...

《Vue.js 组件开发秘籍:从基础到高级》

Vue.js 组件开发是构建 Vue 应用程序的核心方法之一。以下是对 Vue.js 组件开发的介绍&#xff1a; 一、什么是 Vue.js 组件&#xff1f; 在 Vue.js 中&#xff0c;组件是可复用的 Vue 实例&#xff0c;它们封装了特定的功能和用户界面。每个组件都有自己独立的模板、逻辑和样…...

【Next.js 项目实战系列】03-查看 Issue

原文链接 CSDN 的排版/样式可能有问题&#xff0c;去我的博客查看原文系列吧&#xff0c;觉得有用的话&#xff0c;给我的库点个star&#xff0c;关注一下吧 上一篇【Next.js 项目实战系列】02-创建 Issue 查看 Issue 展示 Issue​ 本节代码链接 首先使用 prisma 获取所有…...

Android Settings 设置项修改

Settings 设置项 在 Android 系统上,WRITE_SETTINGS 这个权限从 API 1 就已经开始有了。 通过在 app 中设置权限 android.permission.WRITE_SETTINGS 允许 app 读/写 系统设置。 在官方文档的描述中,还有一段注意事项: Note: If the app targets API level 23 or higher,…...

Windows远程桌面到Ubuntu

在Ubuntu系统中&#xff0c;默认情况下root账户是被禁用的&#xff0c;为了安全起见&#xff0c;建议不要直接使用root账户登录图形界面。但是&#xff0c;如果出于特定的管理或维护需求&#xff0c;您可以按照以下步骤启用和使用root账户登录图形界面&#xff1a; 启用root账户…...

解释 RESTful API,以及如何使用它构建 web 应用程序(AI)

RESTful API&#xff08;Representational State Transfer&#xff09;是一种基于HTTP协议的软件架构风格&#xff0c;用于构建可扩展、可维护和可重用的网络服务。 RESTful API的特点包括&#xff1a; 1. 基于资源&#xff1a;每个API都代表一个或多个资源&#xff0c;这些资…...

NestJs:处理身份验证和授权

使用 Nest.js 开发项目时&#xff0c;处理身份验证和授权是常见的需求&#xff0c;可以采用以下架构和实现方式。 架构 用户认证模块 (Auth Module): 服务 (Service): 处理用户登录逻辑&#xff0c;生成 JWT&#xff08;JSON Web Token&#xff09;&#xff0c;以及验证 token…...

Java EE规范

1、简介 Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE&#xff0c;即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后&#xff0c;就改名成为Java EE。一般来说&#xff0c;企业级应用具备这些特征&#xff1a;1、数据量特别大&…...

Ollama及其Open-WebUI部署更新

目录 1 安装ollama 2 安装Open-WebUI 2.1 不使用容器安装open-webui 2.2 使用Docker安装open-webui 2.3 基于docker升级open-webui 1 安装ollama curl -fsSL https://ollama.com/install.sh | sh启动、关闭ollama systemctl start ollama systemctl stop ollama sys…...

手写 | 设计模式

这里写目录标题 观察者 vs 发布订阅 观察者 vs 发布订阅 参考代码 观察者模式&#xff0c;一对多&#xff0c;两个角色&#xff1a;观察者observer和被观察者/主题Subject。 Subject维护一个数组&#xff0c;记录有哪些Observer&#xff1b;通过调自身的noticefy方法&#xf…...

基于深度学习的地形分类与变化检测

基于深度学习的地形分类与变化检测是遥感领域的一个关键应用&#xff0c;利用深度学习技术从卫星、无人机等地球观测平台获取的遥感数据中自动分析地表特征&#xff0c;并识别地形的变化。这一技术被广泛应用于城市规划、环境监测、灾害预警、土地利用变化分析等领域。 1. 地形…...

进程、线程、协程

文章目录 前言一、易混概念1.1 同步vs异步1.2 并发vs并行 二、进程&#xff08;Process&#xff09;2.1进程概念2.2 进程三个基本状态2.3多进程方式编程 三、线程&#xff08;Thread&#xff09;3.1 线程的引入3.2 线程概念3.3 多线程编程3.4 GIL对多线程的影响3.5 GIL是否意味…...

嵌入式工程师成长之路(1)——元件基础(完整版)

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、认识元件①、认识元件②、认识封装二、电阻1.上拉电阻与下拉电阻①、定义②、应用③、阻值选择④、因上下拉电…...

在Ubuntu 20.04 上安装 CoppeliaSim

在 Ubuntu 20.04 上安装 CoppeliaSim Edu V4.6.0 rev18 的步骤如下&#xff1a; 1. 下载安装文件: 首先&#xff0c;确保您已经下载了 CoppeliaSim_Edu_V4_6_0_rev18_Ubuntu20_04.tar.xz 文件。您可以从 Coppelia Robotics 的官方网站下载。 2. 解压缩文件: 打开终端&#…...

pulseaudio的相关操作(二)

这篇文章主要介绍pulseaudio playback的相关API&#xff0c;pulseaudio playback的具体实例可以参考[2]。如果用pulseaudio实现playback&#xff0c;简单地说就是创建一个playback stream&#xff0c;然后指定这个stream的sink&#xff0c;再定期的向这个stream中写数据。 mai…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战

🧠关键词:Zephyr、BLE、LoRa、混合通信、事件驱动、网关中继、低功耗调度 📌面向读者:希望将 BLE 和 LoRa 结合应用于资产追踪、环境监测、远程数据采集等场景的开发者 📊篇幅预计:5300+ 字 🧭 背景与需求 在许多 IoT 项目中,单一通信方式往往难以兼顾近场数据采集…...

Yolo11改进策略:Block改进|FCM,特征互补映射模块|AAAI 2025|即插即用

1 论文信息 FBRT-YOLO&#xff08;Faster and Better for Real-Time Aerial Image Detection&#xff09;是由北京理工大学团队提出的专用于航拍图像实时目标检测的创新框架&#xff0c;发表于AAAI 2025。论文针对航拍场景中小目标检测的核心难题展开研究&#xff0c;重点解决…...