函数补充与常见例题分析(杂例补充)
目录一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/7/24 22:27:56 阅读更多 →
HarmonyOS开发实战:小分享-应用启动优化——冷启动与热启动

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

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

2026/7/24 22:27:56 阅读更多 →
HarmonyOS开发实战:小分享-内存优化——内存泄漏检测与优化

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

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

2026/7/24 22:27:56 阅读更多 →

最新新闻

YOLOv8实现犬种识别:技术解析与实战应用

YOLOv8实现犬种识别:技术解析与实战应用

1. 项目背景与核心价值在计算机视觉领域,犬类识别一直是个有趣且实用的研究方向。不同于通用目标检测任务,犬种识别需要模型能够区分外观高度相似的犬类亚种,这对算法的细粒度识别能力提出了更高要求。Stanford Dogs数据集作为该领域的经典基…

2026/7/24 22:33:58 阅读更多 →
TRAE架构与AI编程助手:智能开发的未来趋势

TRAE架构与AI编程助手:智能开发的未来趋势

1. 项目背景与技术定位"AI编程助手与TRAE技术路线"这个组合乍看抽象,实则揭示了当前智能编程领域最前沿的进化方向。作为在开发工具链领域深耕多年的从业者,我亲眼见证了传统IDE插件式代码补全(2015-2018)、基于GPT-3的…

2026/7/24 22:33:58 阅读更多 →
数的表示形式

数的表示形式

(1)FPGA中的二进制数可以分为定点数和浮点数两种格式。负数的表示形式(1)补码原码的优点是乘除运算方便,无论正负数,乘除运算都一样,并以符号位决定结果的正负号;若做加法则需要判断…

2026/7/24 22:33:58 阅读更多 →
DLSS Swapper:多平台游戏超分辨率技术管理的架构设计与工程实践

DLSS Swapper:多平台游戏超分辨率技术管理的架构设计与工程实践

DLSS Swapper:多平台游戏超分辨率技术管理的架构设计与工程实践 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在游戏性能优化领域,NVIDIA DLSS、AMD FSR和Intel XeSS等超分辨率技术已成为现代…

2026/7/24 22:33:58 阅读更多 →
培训考试系统AI监考模块深度解析:从技术实现到落地部署的全流程指南

培训考试系统AI监考模块深度解析:从技术实现到落地部署的全流程指南

作为企业IT技术人员,在为公司选型培训考试系统时,我们更关注“技术可行性”“集成难度”“二次开发空间”这些核心问题。当业务部门提出“需要带AI监考功能,能识别切屏、低头”的需求时,我们不仅要判断功能是否满足,还…

2026/7/24 22:33:58 阅读更多 →
如何高效批量下载抖音无水印视频?douyin-downloader 全功能解析

如何高效批量下载抖音无水印视频?douyin-downloader 全功能解析

如何高效批量下载抖音无水印视频?douyin-downloader 全功能解析 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallb…

2026/7/24 22:32:58 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻