函数补充与常见例题分析(杂例补充)
目录一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

相关新闻

宇宙膨胀率吵炸锅!或掀翻物理学,是危机吗?

宇宙膨胀率吵炸锅!或掀翻物理学,是危机吗?

在圣巴巴拉一处离海岸仅几步之遥的会议室里,一众天文学家与物理学家正坐立难安。窗外阳光和煦、海风轻拂,可他们却闭门不出,只为探讨物理学界的一大难题:宇宙的膨胀速度究竟是多少。 依托超新星(恒星爆炸)观…

2026/7/24 22:26:56阅读更多 →
Tcp客户端报错原因分析

Tcp客户端报错原因分析

00000001 2026-03-26 03:06:04 CTcpClient TCP连接测试ConnectTest failed!Server Ipaddr:10.135.134.103, iPort=7807,错误:Bad file descriptor 00000002 2026-03-26 03:06:04 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.103, iPort=7807,错误…

2026/7/24 22:26:56阅读更多 →
VC++串口通讯模块实战:异步I/O、环形缓冲区与工业级可靠性设计

VC++串口通讯模块实战:异步I/O、环形缓冲区与工业级可靠性设计

1. 项目概述:从零构建一个可靠的VC串口通讯模块在工业控制、嵌入式开发、仪器仪表对接等众多领域,串口通讯(Serial Communication)至今仍是设备间进行数据交换最经典、最可靠的通信方式之一。尽管网络通信日益普及,但串…

2026/7/24 22:26:56阅读更多 →
linux系统的基础操作-服务器

linux系统的基础操作-服务器

linux系统的基本用法/Conda的使用打开Tabby之后,输入ssh -p 1017 jiangxingyu109webb.jcswkj.bio然后在弹出的界面写入我的密码,此时密码不会显示输入成功后回车,即可成功进入。需要使用代码进行一系列的操作##查看文件夹ls -l##新建文件夹mk…

2026/7/24 23:49:15阅读更多 →
Java 动态代理是什么?从原理到源码一文讲透

Java 动态代理是什么?从原理到源码一文讲透

面试官想通过这道题考察的核心要点: 能否清晰区分静态代理与动态代理,理解“为什么需要动态代理”;掌握 JDK 动态代理的底层原理(字节码生成、类加载、InvocationHandler 转发);熟悉 Proxy.newProxyInstanc…

2026/7/24 23:49:15阅读更多 →
3分钟终极指南:如何免费解决腾讯游戏卡顿问题

3分钟终极指南:如何免费解决腾讯游戏卡顿问题

3分钟终极指南:如何免费解决腾讯游戏卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源,支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 还在为DNF、LOL等腾讯游戏中的突然卡顿而烦恼吗…

2026/7/24 23:49:15阅读更多 →
Unity游戏开发:Webview插件选型与C#/JavaScript双向通信实战指南

Unity游戏开发:Webview插件选型与C#/JavaScript双向通信实战指南

1. 项目概述:为什么Unity游戏需要Webview?如果你正在开发一款Unity游戏,尤其是面向移动端或PC端的应用,并且需要嵌入一个网页——无论是用来展示公告、加载用户协议、播放视频广告,还是实现一个复杂的HTML5小游戏内嵌—…

2026/7/24 23:49:15阅读更多 →
WPS演示文稿核心操作全解析:动画效果与母版设计实战指南

WPS演示文稿核心操作全解析:动画效果与母版设计实战指南

在备考计算机二级WPS Office演示文稿模块时,很多同学反映对高级功能掌握不够扎实,特别是动画效果、母版设计和幻灯片放映设置等核心考点。本文将围绕WPS演示文稿的六大核心操作展开详细讲解,通过完整案例演示每个功能的具体应用场景。 1. W…

2026/7/24 23:49:15阅读更多 →
C语言学习:排序

C语言学习:排序

一、选择排序核心思想:给合适的位置选择合适的数算法实现步骤:外层循环控制要找的位置 ;里层循环控制要找的数二、冒泡排序相邻两个数两两比较,小的放前面,大的放后面三、插入排序将数据插入到已有的序列--数据跟原有序列比较&…

2026/7/24 23:47:13阅读更多 →
Go语言静态资源打包方案对比与实践指南

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

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

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

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

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

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

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

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

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

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

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

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →