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

“第六十三天”

         这两天怎么做的这么别扭,为什么我的vs 的strlen函数包括终止字符了;

        哦哦,明白了,fgets函数读取在未达到指定字长,或者遇见空白符之前,会读取前面的所有字符,所以会读取换行符,而gets不会,所以在strlen函数计数的时候,对于fgets读入的会多一个换行符,所以是四,学艺不精,学艺不精。

 

这个学来一个新东西,字母的判断,大小写字母的判断,以及大小写字母的转换

它们都是在同一个库函数 <ctype.h>   

判断是否是字母的函数是   :  isalpha(); 

大小写字母的判断分别是  :  isupper()  ;   和   islower()   ;   前者是大写判断;

大小写字母转换是 :    toupper()  ;   和      tolower()  ;   前者是小写转大写;

上面函数括号里面放的都是需要判断的字符;  是的话,返回真。

大小写转换的话。如果满足大小写则转换成对应的大写或小写,然后返回,如果不满足的话,则不做改变,返回原来值。

 这个题说的长度小于50,可是我把数组长度扩大到100它才给我全过,这个又是为什么?

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{char ch[100] = { 0 };fgets(ch, 100, stdin);int i = 0;int n = strlen(ch);for (i = 0; i < n; i++){if (islower(ch[i])){ch[i] = (ch[i] - 'a' + 3) % 26 + 'a';ch[i] = toupper(ch[i]);}else{ch[i] = (ch[i] - 'A' + 3) % 26 + 'A';ch[i] = tolower(ch[i]);}}for (i = n-1; i >= 0; i--){printf("%c", ch[i]);}return 0;
}

昨天的那个成了,把时间复杂度从n^2变成了n,我真的感觉我把 数组里的字符减去A 当作其他数组的下标还蛮厉害的,hh。

#include<string.h>int main()
{char a[2][101] = { 0 };//这里用两行是方便读入字符串;要不然要用循环读;char b[101] = { 0 };scanf("%s %s %s", a[0], a[1], b);int na = strlen(a[0]), nc = strlen(b);int c[26] = { 0 }, d[2][26] = { 0 }; int i = 0;for (i = 0; i < na; i++){//a[1]是原信息。c[(a[1][i] - 'A')]++;//记录每个字母是否都出现过。出现则加一,A对应的是c[0],Z对应的是c[25]。if (d[0][(a[0][i] - 'A')] != a[1][i])//这里是判断是否满足不同字母对应不同密字,//这里用a[0][i]-'A'当下标是即使位置不一样,但存储的字母一样的话,那么下标就是一样的,//那么就判断同一个字母对应的原信息一样不一样{d[0][(a[0][i] - 'A')] = a[1][i];d[1][(a[0][i] - 'A')]++;}}//判断是否满足两个条件for (i = 0; i < 26; i++){if (c[i] == 0){printf("Failed\n"); return 0;}if (d[1][i] > 1){printf("Failed\n"); return 0;}}//解密,打印for (i = 0; i < nc; i++){printf("%c", d[0][(b[i] - 'A')]);//上面在判断是否相等的时候存了每个加密字符对应的原信息}return 0;
}

相关文章:

“第六十三天”

这两天怎么做的这么别扭&#xff0c;为什么我的vs 的strlen函数包括终止字符了&#xff1b; 哦哦&#xff0c;明白了&#xff0c;fgets函数读取在未达到指定字长&#xff0c;或者遇见空白符之前&#xff0c;会读取前面的所有字符&#xff0c;所以会读取换行符&#xff0c;而get…...

常用排序算法实现

时间复杂度 O ( 1 ) O(1) O(1) void func1(int n){int count 100;count; } void func2(int n){int count 100;for(int i 0; i < count;i){} } int func3(int n){return n; }O ( n ) O(n) O(n) void func1(int n){int count 100;for(int i 0; i < n;i){count;} …...

使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别

目标网站&#xff1a;https://www.txrjy.com/forum.php 一、进入网页&#xff0c;右键“检查” 二、输入用户名和密码&#xff0c;点击“登录”&#xff0c;点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项&#xff0c;找到URL 四、相关代码&#xff1a; …...

Redis 的缓存击穿,穿透,雪崩及其解决方案

1 缓存穿透 什么是缓存穿透&#xff1f; 大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力&#xff0c;可能直接就被这么多…...

JWT原理分析——JWT

了解为什么会有JWT的出现&#xff1f; 首先不得不提到一个知识叫做跨域身份验证&#xff0c;JWT的出现就是为了更好的解决这个问题&#xff0c;但是在没有JWT的时候&#xff0c;我们一般怎么做呢&#xff1f;一般使用Cookie和Session&#xff0c;流程大体如下所示&#xff1a;…...

Jprofiler/ VisualVM 定位内存溢出OOM

下载,接受协议下一步下一步,最后选择与IDEA集成OK ej-technologies - Java APM, Java Profiler, Java Installer Builder IDEA配置参数: # F:\study\spring-test\dump 为dump文件保存路径-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathF:\study\spring-test\dumppackage …...

NOIP2023模拟13联测34 competition

题目大意 有一场题目数量为 m m m的比赛&#xff0c;有一个团队想要来参加。 这个团队有 n n n个选手&#xff0c;编号为 i i i的选手能做第 l i ∼ r i l_i \sim r_i li​∼ri​道题&#xff0c;每题他都有 100 % 100\% 100%的概率做出来。 这个团队会随机派出一只队伍来参…...

Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录&#xff0c;包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合&#xff0…...

用 QT 开发软件会吃官司吗?

之前我写过我们现在使用 QT 开发跨平台软件&#xff0c;有朋友留言&#xff0c;QT 虽好&#xff0c;当心收到律师函。今天就来聊聊这个话题。 在开始这个话题之前&#xff0c;我们先把使用盗版 QT 排除在外&#xff0c;只讨论在合法且遵从版权协议的前提下&#xff0c;能否使用…...

远程运维用什么软件?可以保障更安全?

远程运维顾名思义就是通过远程的方式IT设备等运行、维护。远程运维适用场景包含因疫情居家办公&#xff0c;包含放假期间出现运维故障远程解决&#xff0c;包含项目太远需要远程操作等等。但远程运维过程存在一定风险&#xff0c;安全性无法保障&#xff0c;所以一定要选择靠谱…...

数据结构与算法C语言版学习笔记(2)-线性表、顺序存储结构的线性表

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 数据结构部分的知识框架一、线性表的定义和特点1.定义2.特点 二、线性表的实际案例引入1.案例一&#xff1a;多项式的加减乘除2.案例二&#xff1a;当多项式是稀疏多…...

【vite】vite.defineConfig is not a function/npm无法安装第三方包问题

当使用vite命令 npm init vite-app 项目名称时配置 import vue from vitejs/plugin-vueexport default defineConfig({plugins: [vue()] })会报错vite.defineConfig is not a function 还有就是npm下载的时候也会报错 原因vite插件vitejs/plugin-vue和vite版本问题 解决 调…...

234. 回文链表 --力扣 --JAVA

题目 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解题思路 判断链表是否为回文链表取决于链表中各个节点的值&#xff0c;所以可以通过存储各节点的值进行对比判断&…...

【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter19/src/com/yinhai 文件 一、文件&#xff0c;流 文件,对我们并不陌生&#xff0c;文件是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件..都是文件。它既可以保存一张图片…...

R语言 复习 习题图片

这是日天土申哥不知道从哪淘来的R语言复习知识点图片&#xff0c;大部分内容都是课后习题的答案 加油吧&#xff0c;骚年&#xff0c;考个好分数...

c语言 结构体 简单实例

结构体 简单例子 要求&#xff1a; 结构体保存学生信息操作 代码 #include <stdio.h>//定义结构体 struct student{int ID;char name[20];char sex;char birthday[8];int grade; };int main(){int number;printf("请输入学生个数&#xff1a;");scanf(&quo…...

【ChatGPT】ChatGPT的自定义指令

ChatGPT的自定义指令 关于ChatGPT自定义指令的常见问题解答概述可用性如何使用您的数据自定义指令设置将应用于所有新聊天。启动新聊天可查看更改iOS & AndroidWeb 示例常见问题使用自定义指令的好处字符限制我的ChatGPT数据导出中是否包含自定义指令&#xff1f;当我删除我…...

《哥德尔、艾舍尔、巴赫——集异璧之大成》阅读笔记1

1、谁也不知道非智能行为和智能行为之间的界限在哪里。事实上&#xff0c;认为存在明显界限也许是愚蠢的。但是智能的基本能力还是确定的&#xff0c;它们是&#xff1a; 对于情境有很灵活的反应充分利用机遇弄懂含糊不清或彼此矛盾的信息认识到一个情境中什么是重要的因素&am…...

稳定细胞系构建技术介绍

抗体药物的开发是一个非常复杂的过程&#xff0c;构建适用于工业生产的高表达的稳定细胞株是抗体药工艺开发的起点和基础。一株稳定高产的工程细胞株不仅能显著增加单位体积产量&#xff0c;降低生产成本&#xff0c;还可以降低下游纯化工艺复杂度&#xff0c;确保获得安全&…...

k8s部署srs服务

k8s部署srs服务 项目需要把srs纳入k8s进行管理&#xff0c;需要通过k8s来部署srs服务然后原本的srs可以支持rtmp与webrtc两种&#xff0c;官网查了部署方式&#xff0c;k8s只有最基本的部署方式于是开始研究k8s部署能够正常推拉流的webrtc版本的srs 首先肯定是去官网查有无相关…...

Linux实现简易版Shell的代码详解

一、程序流程分析我们日常使用Bash时&#xff0c;通过输入命令执行相应的操作&#xff0c;比如&#xff1a;那么&#xff0c;Bash是如何进行工作的呢&#xff1f;观察一下&#xff0c;就会发现&#xff0c;首先Bash会打印命令行提示符&#xff0c;包括当前用户、主机名以及路径…...

千问3.5-27B效果实测:低质量扫描件文字区域检测与内容还原

千问3.5-27B效果实测&#xff1a;低质量扫描件文字区域检测与内容还原 1. 模型介绍 Qwen3.5-27B是Qwen官方发布的视觉多模态理解模型&#xff0c;具备强大的文本对话与图片理解能力。本镜像已在4张RTX 4090 D 24GB显卡环境下完成部署&#xff0c;提供中文Web对话界面、流式文…...

Oracle VM VirtualBox快速上手指南——Win10环境下的下载与安装详解

1. 为什么选择VirtualBox搭建虚拟环境&#xff1f; 作为一个在虚拟化领域摸爬滚打多年的老手&#xff0c;我测试过市面上几乎所有主流虚拟机软件。对于Windows 10用户来说&#xff0c;Oracle VM VirtualBox绝对是入门虚拟化的首选利器。它最大的优势就是完全免费开源&#xff0…...

嵌入式通信协议:UART、SPI、I2C原理与应用

1. 嵌入式通信协议基础概述在嵌入式系统开发中&#xff0c;各种通信协议就像设备之间的"语言"&#xff0c;决定了数据如何在不同模块间传递。作为一名嵌入式工程师&#xff0c;我经常需要在项目中根据具体需求选择合适的通信方式。UART、SPI、I2C这三种串行通信协议可…...

小程序支付实名认证跳转:从安卓兼容到iOS限制的实战处理方案

1. 小程序支付实名认证跳转的痛点解析 最近在开发一个保险行业的小程序时&#xff0c;遇到了一个让人头疼的问题&#xff1a;支付环节需要跳转到微支保小程序进行实名认证。最初的做法很简单粗暴&#xff0c;直接在页面加载时就调用wx.navigateToMiniProgram跳转。测试时发现&a…...

Linux桌面/usr/share详解

/usr/share 是 Linux 桌面系统中一个极其核心的目录&#xff0c;遵循 FHS&#xff08;文件系统层次结构标准&#xff09;。它的核心定位是&#xff1a;存储架构无关的、只读的、应用程序之间共享的数据。简单理解&#xff1a;如果把系统比作一家公司&#xff0c;/usr/share 就是…...

【GitLab npm Registry 非标准端口安装问题解决方案】

GitLab npm Registry 非标准端口安装问题解决方案 问题类型: npm/pnpm 客户端与 GitLab npm Registry 集成 影响范围: 使用非标准端口的 GitLab npm Registry 解决时间: 2026-04-03 文档版本: v1.0 一、问题背景 1.1 业务场景 团队需要将内部组件库发布到私有 npm registry,选…...

嵌入式开发中的策略模式应用与优化

1. 策略模式在嵌入式开发中的核心价值在嵌入式系统开发中&#xff0c;我们经常遇到这样的场景&#xff1a;同一个功能模块需要根据不同的硬件环境、运行状态或外部条件采用不同的处理算法。传统做法是使用大量的if-else或switch-case语句&#xff0c;但这种做法会带来几个显著问…...

三态模型:**就绪**(已获除CPU外所有资源,等待调度)、**运行**(正在CPU执行)、**阻塞**(等待某事件如I/O完成,主动放弃CPU)

&#x1f539; 进程与线程 进程是资源分配的基本单位&#xff0c;拥有独立地址空间&#xff1b;线程是CPU调度的基本单位&#xff0c;同一进程内线程共享代码段、数据段和打开文件等资源&#xff0c;但有独立栈和寄存器上下文。线程切换开销远小于进程切换&#xff08;无需TLB刷…...

终极指南:如何使用dnstwist与模糊哈希精准识别钓鱼网站攻击

终极指南&#xff1a;如何使用dnstwist与模糊哈希精准识别钓鱼网站攻击 【免费下载链接】dnstwist Domain name permutation engine for detecting homograph phishing attacks, typo squatting, and brand impersonation 项目地址: https://gitcode.com/gh_mirrors/dn/dnstw…...