函数补充与常见例题分析(杂例补充)
目录一atoi函数二isspace函数三isdigit函数四例题1序列中删除指定数字2数组串联3offsetof宏的实现4交换奇偶位一atoi函数头文件#include stdlib.h核心功能将字符串转化为整形(int)语法int atoi(const char* str)str为以\0结尾的要转化的字符串如果无法有效转化就会返回0转化特点1如果遇到空格就跳过2可以识别正负号正号不显示负号显示3当遇到字母字符时会直接停止当字符串中的所有数字都在字母字符后时会直接返回04遇到超出int范围的值时大于返回int的最大值小于返回int的最小值注意当字符串中有浮点数时atoi只会转化整数部分小数部分会直接忽略。运用展示当字符串为 a1234 时打印0当为 -12a34时打印-12当为 -12.34时打印-121.模拟实现atoi函数二isspace函数头文件#include ctype.h核心功能检查字符是否空白字符语法int isspace(int c)当是空白字符时返回一个非零数当不是空白字符时返回0C语言中的空白字符有以下几种三isdigit函数核心功能判断字符是不是‘0’~‘9’的数字字符头文件#include ctype.h语法int isdigit(int c)c为要传入的字符的ASCII码值范围0c255或EOF(-1)返回值当是‘0’~‘9’的数字字符时返回一个非零值如果不是则返回0用int来接收字符的原因1支持文件结束符EOF(-1)2函数内部实现的需要四例题1序列中删除指定数字#include stdio.h int main() { int n 0; scanf(%d,n); //把整数输入到数组中 int arr[50] {0};//50为最大容量 int i 0; for(i0;in;i) { scanf(%d ,arr[i]); } //删除值 int del 0; scanf(%d,del); //重排序-两个变量记录下标 int a 0; int b 0; for(a0;an;a) { if(arr[a]!del) { arr[b] arr[a]; b; } } int k 0; for(k0;kb;k) { printf(%d ,arr[k]); } return 0; }分析关键内容在于最后的重新排序上述最后的循环次序是不可更改的在a到达要删除的数字前b先到达再通过判断让a停下在b变大前将a处的值传给b实现序列的更改。2数组串联3offsetof宏的实现头文件#include stddef.h核心功能计算结构体成员相对于首地址的偏移量实现#define offsetof(s,m) ((size_t)(((s*)0)-m))其中s为结构体类型m为结构体成员拆分解释(s*)0//将0强制转化为s结构体类型的指针这样做相当于结构体的首地址是0同时表示结构体的首地址((s*)0)-m) //表示结构体成员 //用指针访问成员类似:ps-age ps为结构体指针首地址((size_t)(((s*)0)-m)) //对结构体成员取地址并将地址值强制转化为size_t类型由于首地址为0所以成员的地址转化一下类型就是偏移量。4交换奇偶位写一个宏用来交换一个整数二进制的奇偶位解析5猜名次实现思路使用循环创造5*5共25种情况并判断并排除名次相同的情况求出满足条件的情况最后打印。代码实现//猜名次 //防止重复,判断数组中是否有重复元素 int cheakdata(int* p) { //由于p[i]的范围为1~5所以创建6个空间 int tmp[6] { 0 }; //新建一个数组元素初始化值都为0 int i 0; for (i 0; i 5; i) //遍历p[5]中的每一个元素 { if (tmp[p[i]]) //如果不为零说明此值已经被检测了一次有重复元素返回零p[i]的范围为1~5 { return 0; } tmp[p[i]] 1; //第一次为0,就赋值为1之后p[i]值相同时就返回0 } return 1; //没有相同元素返回1 } int main() { int p[5] { 0 }; //0 1 2 3 4分别表示a b c d e //五个循环嵌套创造出5*5中情况需要判断是否有元素相同 for (p[0] 1; p[0] 5; p[0]) { for (p[1] 1; p[1] 5; p[1]) { for (p[2] 1; p[2] 5; p[2]) { for (p[3] 1; p[3] 5; p[3]) { for (p[4] 1; p[4] 5; p[4]) { //每个人有半句话是对的 if ((p[1] 2) (p[0] 3) 1 //b第二a第三 (p[1] 2) (p[4] 4) 1 //b第二e第四 (p[2] 1) (p[3] 2) 1 //c第一d第二 (p[2] 5) (p[3] 3) 1 //c第五d第三 (p[4] 4) (p[0] 1) 1 //e第四a第一 cheakdata(p)) { int i 0; for (i 0; i 5; i) { printf(%d , p[i]); } printf(\n); } } } } } } return 0; }执行结果3 1 5 2 4 //a b c d e

相关新闻

专业级Steam创意工坊下载工具完全指南:WorkshopDL从入门到精通实战技巧

专业级Steam创意工坊下载工具完全指南:WorkshopDL从入门到精通实战技巧

专业级Steam创意工坊下载工具完全指南:WorkshopDL从入门到精通实战技巧 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL WorkshopDL是一款专业级的跨平台Steam创意工…

2026/10/27 1:52:44 阅读更多 →
HarmonyOS开发实战:小分享-应用启动优化——冷启动与热启动

HarmonyOS开发实战:小分享-应用启动优化——冷启动与热启动

前言 应用启动优化 是提升用户体验的首个关键环节。冷启动(首次启动)和热启动(后台切前台)的优化策略有所不同。小分享 App 的启动流程包含 Ability 初始化、页面加载、数据请求等。本篇讲解启动优化策略。详细 API 可参考 Harmo…

2026/10/31 1:30:32 阅读更多 →
HarmonyOS开发实战:小分享-内存优化——内存泄漏检测与优化

HarmonyOS开发实战:小分享-内存优化——内存泄漏检测与优化

前言 内存优化 是保证应用长期稳定运行的关键,内存泄漏会导致应用卡顿甚至崩溃。HarmonyOS 提供了内存检测工具。小分享 App 的图片加载、定时器、事件监听等场景容易产生内存泄漏。本篇讲解内存泄漏检测与优化。详细 API 可参考 HarmonyOS 内存优化官方文档。 一…

2026/10/31 21:55:43 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/1 0:24:43 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/31 10:20:19 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/31 10:20:23 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/1 1:06:58 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/31 10:30:19 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/31 9:29:43 阅读更多 →

日新闻

周新闻

月新闻