当前位置: 首页 > 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;
}

http://www.lryc.cn/news/221819.html

相关文章:

  • 常用排序算法实现
  • 使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别
  • Redis 的缓存击穿,穿透,雪崩及其解决方案
  • JWT原理分析——JWT
  • Jprofiler/ VisualVM 定位内存溢出OOM
  • NOIP2023模拟13联测34 competition
  • Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记
  • 用 QT 开发软件会吃官司吗?
  • 远程运维用什么软件?可以保障更安全?
  • 数据结构与算法C语言版学习笔记(2)-线性表、顺序存储结构的线性表
  • 【vite】vite.defineConfig is not a function/npm无法安装第三方包问题
  • 234. 回文链表 --力扣 --JAVA
  • 【JAVA学习笔记】65 - 文件类,IO流--节点流、处理流、对象流、转换流、打印流
  • R语言 复习 习题图片
  • c语言 结构体 简单实例
  • 【ChatGPT】ChatGPT的自定义指令
  • 《哥德尔、艾舍尔、巴赫——集异璧之大成》阅读笔记1
  • 稳定细胞系构建技术介绍
  • k8s部署srs服务
  • 使用Java分割PDF文件
  • LLM时代中的分布式AI
  • Zinx框架-游戏服务器开发003:架构搭建-需求分析及TCP通信方式的实现
  • 如何使用Pyarmor保护你的Python脚本
  • 【c++】搜索二叉树的模拟实现
  • Kubeadm - K8S1.20 - 高可用集群部署(博客)
  • 515. 在每个树行中找最大值
  • 基于springboot+vue的图书馆管理系统
  • 诊断刷写流程中使用到的诊断服务
  • pytorch 中 nn.Conv2d 解释
  • 漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关